created function for creating of main window
authorVlad <vlad@gas.by>
Thu, 26 Aug 2010 17:20:10 +0000 (20:20 +0300)
committerVlad <vlad@gas.by>
Thu, 26 Aug 2010 17:20:10 +0000 (20:20 +0300)
applet/src/livewp-main.c
applet/src/livewp-scene.c

index 62c174e..8a9879c 100644 (file)
@@ -265,10 +265,21 @@ long_timeout (AWallpaperPlugin *desktop_plugin)
 }
 
 /*******************************************************************************/
+void
+create_xwindow (Animation_WallpaperPrivate *priv){
+    GtkWidget *main_widget = NULL;
+    /* Create Main GUI */
+    main_widget = hildon_window_new ();
+    priv->window = main_widget;
+    gtk_window_set_title(GTK_WINDOW(main_widget), PACKAGE);
+    gtk_window_fullscreen(GTK_WINDOW(main_widget));
+    gtk_widget_show_all(GTK_WIDGET(main_widget));
+    set_live_bg(GDK_WINDOW_XDISPLAY (main_widget->window), GDK_WINDOW_XID (main_widget->window), priv->view);
+}
+/*******************************************************************************/
 int
 main(int argc, char *argv[])
 {
-    GtkWidget *main_widget = NULL;
     HildonProgram       *app;
     int view = 1;
 
@@ -301,18 +312,11 @@ main(int argc, char *argv[])
     bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
     textdomain(GETTEXT_PACKAGE);
 #endif
-/* Create Main GUI */
-    main_widget = hildon_window_new ();
-    gtk_window_set_title(GTK_WINDOW(main_widget), PACKAGE);
-    gtk_window_fullscreen(GTK_WINDOW(main_widget));
-    
-    gtk_widget_show_all(GTK_WIDGET(main_widget));
 
     priv->scene = NULL;
     priv->pipeline = NULL;
     priv->podpid = -1;
     priv->running = FALSE;
-    priv->window = main_widget;
     /* fprintf(stderr,"XWINDOW %i\n",GDK_WINDOW_XID (main_widget->window)); */
     priv->desktop_plugin = desktop_plugin;
     priv->view = view;
@@ -326,8 +330,7 @@ main(int argc, char *argv[])
     
     /* Initialize DBUS */
     livewp_initialize_dbus(priv);
-    set_live_bg(GDK_WINDOW_XDISPLAY (main_widget->window), GDK_WINDOW_XID (main_widget->window), view);
-    
+        
     priv->view_notify = 0; 
     /* fprintf(stderr,"VISIBLE %i %i\n",priv->visible, current_active_view()); */
     gconf_client_add_dir(gconf_client_get_default (), "/apps/osso/hildon-desktop/views", GCONF_CLIENT_PRELOAD_NONE, NULL);
@@ -338,6 +341,8 @@ main(int argc, char *argv[])
     if (!strcmp(priv->theme,"Video"))
         priv->theme_int_parametr1 = 0;
 
+
+    create_xwindow(priv);
     init_scene_theme(desktop_plugin);
         
     priv->long_timer = g_timeout_add(LONG_TIMER, (GtkFunction)long_timeout, desktop_plugin);
index e0a8f11..dc2dec8 100644 (file)
@@ -98,9 +98,11 @@ destroy_scene(AWallpaperPlugin *desktop_plugin)
 void
 reload_scene(AWallpaperPlugin *desktop_plugin)
 {
-     fprintf(stderr,"Reload scene %s\n", desktop_plugin->priv->theme); 
+    fprintf(stderr,"Reload scene %s\n", desktop_plugin->priv->theme); 
     destroy_scene(desktop_plugin);
     fill_priv(desktop_plugin->priv);
+    gtk_widget_destroy(desktop_plugin->priv->window);
+    create_xwindow(desktop_plugin->priv);
     init_scene_theme(desktop_plugin);
 }
 /*******************************************************************************/
@@ -267,6 +269,7 @@ init_scene_External(AWallpaperPlugin *desktop_plugin){
             fprintf(stderr,"name %s %i %i\n", window_name, id_xwindow, i);
             if (id_xwindow>0){
                 set_live_bg (GDK_WINDOW_XDISPLAY (desktop_plugin->priv->window->window),  id_xwindow, desktop_plugin->priv->view);
+                /* gtk_widget_destroy(desktop_plugin->priv->window); */
                 break;
             }
         }