tmp = g_slist_next(tmp);
}
g_slist_free(tmp);
-
+ desktop_plugin->priv->scene->actors = NULL;
+ if (desktop_plugin->priv->scene){
+ g_free(desktop_plugin->priv->scene);
+ desktop_plugin->priv->scene = NULL;
+ }
}
void
{
fprintf(stderr,"Reload scene %s\n", desktop_plugin->priv->theme);
destroy_scene(desktop_plugin);
+#if 0
if (!strcmp(desktop_plugin->priv->theme,"Modern"))
- init_scene(desktop_plugin);
+ init_scene_Modern(desktop_plugin);
else if (!strcmp(desktop_plugin->priv->theme,"Berlin"))
- init_scene1(desktop_plugin);
+ init_scene_Berlin(desktop_plugin);
else if (!strcmp(desktop_plugin->priv->theme,"Matrix"))
- init_scene2(desktop_plugin);
+ init_scene_Matrix(desktop_plugin);
+#endif
+ init_scene_theme(desktop_plugin);
}
void
-init_scene2(AWallpaperPlugin *desktop_plugin)
+init_scene_Matrix(AWallpaperPlugin *desktop_plugin)
{
Actor *actor;
Scene *scene;
/* Init Modern Scene */
void
-init_scene(AWallpaperPlugin *desktop_plugin)
+init_scene_Modern(AWallpaperPlugin *desktop_plugin)
{
Actor *actor;
Scene *scene;
/* Init Berlin Scene */
void
-init_scene1(AWallpaperPlugin *desktop_plugin)
+init_scene_Berlin(AWallpaperPlugin *desktop_plugin)
{
Actor *actor, *actor1, *actor2;
Scene *scene;
}
+void
+init_scene_theme(AWallpaperPlugin *desktop_plugin)
+{
+ void (*func)(gpointer);
+ func = g_hash_table_lookup(desktop_plugin->priv->hash_scene_func, desktop_plugin->priv->theme);
+ if (func){
+ (*func)(desktop_plugin);
+ }
+}