fixed destroy child actors
authortanya <tanya@moshkanov.oblgaz>
Sat, 24 Apr 2010 09:56:42 +0000 (12:56 +0300)
committertanya <tanya@moshkanov.oblgaz>
Sat, 24 Apr 2010 09:56:42 +0000 (12:56 +0300)
applet/src/livewp-home-widget.c

index d6bab1a..8ab9f6f 100644 (file)
@@ -789,6 +789,9 @@ destroy_scene(void){
     while (tmp != NULL){
         actor = tmp->data;
         if (actor){
+            if (actor->child){
+                g_ptr_array_free(actor->child, TRUE);
+            }
             if (actor->filename)
                 g_free(actor->filename);
             if (actor->name)
@@ -848,7 +851,7 @@ init_scene2(AWallpaperPlugin *desktop_plugin)
                       NULL, NULL, NULL);
   //actor->time_start_animation = now;
   //actor->duration_animation = G_MAXINT;
-  //scene.actors = g_slist_append(scene.actors, actor);
+  scene.actors = g_slist_append(scene.actors, actor);
   g_ptr_array_add(child, actor);
 
   actor = init_object(desktop_plugin, "layer1", "layer1_1.png", 
@@ -857,7 +860,7 @@ init_scene2(AWallpaperPlugin *desktop_plugin)
                       NULL, NULL, NULL);
   //actor->time_start_animation = now;
   //actor->duration_animation = G_MAXINT;
-  //scene.actors = g_slist_append(scene.actors, actor);
+  scene.actors = g_slist_append(scene.actors, actor);
   g_ptr_array_add(child, actor);
 
   actor = init_object(desktop_plugin, "layer2", "layer2_2.png", 
@@ -866,7 +869,7 @@ init_scene2(AWallpaperPlugin *desktop_plugin)
                       NULL, NULL, NULL);
   //actor->time_start_animation = now;
   //actor->duration_animation = G_MAXINT;
-  //scene.actors = g_slist_append(scene.actors, actor);
+  scene.actors = g_slist_append(scene.actors, actor);
   g_ptr_array_add(child, actor);
 
   actor = init_object(desktop_plugin, "layer2", "layer2_1.png", 
@@ -875,7 +878,7 @@ init_scene2(AWallpaperPlugin *desktop_plugin)
                       NULL, NULL, NULL);
   //actor->time_start_animation = now;
   //actor->duration_animation = G_MAXINT;
-  //scene.actors = g_slist_append(scene.actors, actor);
+  scene.actors = g_slist_append(scene.actors, actor);
   g_ptr_array_add(child, actor);
 
   actor = init_object(desktop_plugin, "layers", "", 
@@ -1296,13 +1299,13 @@ init_scene1(AWallpaperPlugin *desktop_plugin)
                       486, 425, 10, 18, 38, 
                       FALSE, TRUE, 100, 255, NULL, NULL, NULL);
   //actor->time_start_animation = now + fast_rnd(30) + 10;  
-  //scene.actors = g_slist_append(scene.actors, actor);
+  scene.actors = g_slist_append(scene.actors, actor1);
    
   actor2 = init_object(desktop_plugin, "signal_green", "green.png", 
                       486, 425, 10, 18, 38, 
                       TRUE, TRUE, 100, 255, NULL, NULL, NULL);
   //actor->time_start_animation = now + fast_rnd(30) + 10;  
-  //scene.actors = g_slist_append(scene.actors, actor1);
+  scene.actors = g_slist_append(scene.actors, actor2);
   child = g_ptr_array_sized_new(2);
   g_ptr_array_add(child, actor1);
   g_ptr_array_add(child, actor2);
@@ -1603,7 +1606,7 @@ animation_wallpaper_plugin_init (AWallpaperPlugin *desktop_plugin)
     priv->desktop_plugin = desktop_plugin;
     priv->visible = TRUE;
     priv->short_timer = 0;
-    priv->theme = g_strdup("Modern");
+    //priv->theme = g_strdup("Modern");
     desktop_plugin->priv->main_widget = gtk_fixed_new();
 
     gtk_widget_set_size_request(desktop_plugin->priv->main_widget, 100, 32);