void
reload_scene(AWallpaperPlugin *desktop_plugin)
{
- fprintf(stderr,"Reload scene %s\n", desktop_plugin->priv->theme);
- destroy_scene();
- if (!strcmp(desktop_plugin->priv->theme,"Modern"))
- init_scene(desktop_plugin);
- else if (!strcmp(desktop_plugin->priv->theme,"Berlin"))
- init_scene1(desktop_plugin);
- else if (!strcmp(desktop_plugin->priv->theme,"Matrix"))
- init_scene2(desktop_plugin);
+ /* change long_timer if change rich_animation */
+ if (desktop_plugin->priv->long_timer){
+ g_source_remove(desktop_plugin->priv->long_timer);
+ desktop_plugin->priv->long_timer = 0;
+ }
+ if (desktop_plugin->priv->rich_animation)
+ desktop_plugin->priv->long_timer = g_timeout_add(LONG_TIMER1, (GtkFunction)long_timeout, desktop_plugin);
+ else
+ desktop_plugin->priv->long_timer = g_timeout_add(LONG_TIMER2, (GtkFunction)long_timeout, desktop_plugin);
+
+ /* change theme if need */
+ if (strcmp(scene.name, desktop_plugin->priv->theme)){
+ fprintf(stderr,"Reload scene %s\n", desktop_plugin->priv->theme);
+ destroy_scene();
+ if (!strcmp(desktop_plugin->priv->theme,"Modern"))
+ init_scene(desktop_plugin);
+ else if (!strcmp(desktop_plugin->priv->theme,"Berlin"))
+ init_scene1(desktop_plugin);
+ else if (!strcmp(desktop_plugin->priv->theme,"Matrix"))
+ init_scene2(desktop_plugin);
+ }
}
static void
fprintf(stderr, "init scene2 \n");
//scene.daytime = get_daytime();
scene.actors = NULL;
-
+ scene.name = g_strdup("Matrix");
actor = init_object(desktop_plugin, "background", "bg.png",
0, 0, 5, 800, 480,
/* init value for random */
scene.seed = time(NULL);
+ scene.name = g_strdup("Modern");
actor = init_object(desktop_plugin, "sky", "sky0.png",
/* init value for random */
scene.seed = time(NULL);
+ scene.name = g_strdup("Berlin");
actor = init_object(desktop_plugin, "sky", "sky.png", 0, 0, 5, 800, 480,
TRUE, TRUE, 100, 255,
static gboolean
long_timeout (AWallpaperPlugin *desktop_plugin)
{
- /* fprintf(stderr, "long_timeout %i\n", desktop_plugin->priv->long_timer); */
+ //fprintf(stderr, "long_timeout %d %d\n", desktop_plugin->priv->long_timer, time(NULL));
if (desktop_plugin->priv->long_timer == 0 )
return FALSE;
if (!desktop_plugin->priv->visible){
desktop_plugin->priv->long_timer = 0;
return FALSE;
}
-
run_long_timeout(desktop_plugin);
return TRUE; /* keep running this event */
if (visible){
desktop_plugin->priv->visible = TRUE;
if (desktop_plugin->priv->long_timer == 0 ){
- desktop_plugin->priv->long_timer = g_timeout_add(LONG_TIMER, (GtkFunction)long_timeout, desktop_plugin);
+ if (desktop_plugin->priv->rich_animation)
+ desktop_plugin->priv->long_timer = g_timeout_add(LONG_TIMER1, (GtkFunction)long_timeout, desktop_plugin);
+ else
+ desktop_plugin->priv->long_timer = g_timeout_add(LONG_TIMER2, (GtkFunction)long_timeout, desktop_plugin);
+
run_long_timeout(desktop_plugin);
}
}else{
init_scene1(desktop_plugin);
else if (!strcmp(priv->theme, "Matrix"))
init_scene2(desktop_plugin);
- priv->long_timer = g_timeout_add(LONG_TIMER, (GtkFunction)long_timeout, desktop_plugin);
+
+ if (priv->rich_animation)
+ priv->long_timer = g_timeout_add(LONG_TIMER1, (GtkFunction)long_timeout, desktop_plugin);
+ else
+ priv->long_timer = g_timeout_add(LONG_TIMER2, (GtkFunction)long_timeout, desktop_plugin);
+
/* TODO Move scene to priv */
scene.timer_type = LONG_TIMER_TYPE;
g_signal_connect (desktop_plugin, "notify::is-on-current-desktop",