fork is done
[livewp] / applet / src / livewp-home-widget.c
index 9557f7e..384327b 100644 (file)
@@ -45,7 +45,6 @@ lw_applet_realize (GtkWidget *widget)
     gchar * strid; 
     gint id; 
     AWallpaperPlugin *desktop_plugin = widget;
-    pid_t  pid;
     char* child_argv[] =  {"/usr/bin/livewp", "0", (char *) 0 };
 
 
@@ -57,19 +56,17 @@ lw_applet_realize (GtkWidget *widget)
     fprintf(stderr,"ID !!!!!!!!!! %i\n",id);
 
     switch (id){
-           case 0: child_argv[1] = "0";
+           case 0: child_argv[1] = "1";
                break;
-           case 1: child_argv[1] = "1";
+           case 1: child_argv[1] = "2";
                break;
-           case 2: child_argv[1] = "2";
+           case 2: child_argv[1] = "3";
                break;
-           case 3: child_argv[1] = "3";
+           case 3: child_argv[1] = "4";
                break;
     }
-    fprintf(stderr,"New proceess !!!!!!!!!! %s\n",child_argv[0]);
-    fprintf(stderr,"New proceess !!!!!!!!!! %s\n",child_argv[1]);
-    pid = fork();
-    if (pid == 0){
+    desktop_plugin->priv->pid = fork();
+    if (desktop_plugin->priv->pid == 0){
        fprintf(stderr,"New proceess !!!!!!!!!! %s\n",child_argv[1]);
        execvp("/usr/bin/livewp", child_argv);
        fprintf(stderr,"Problem with new process");
@@ -528,6 +525,7 @@ animation_wallpaper_plugin_init (AWallpaperPlugin *desktop_plugin)
 static void
 lw_applet_finalize (GObject *object)
 {
+     int status = 0; int wpid; 
 fprintf(stderr,"lw_applet_finalize\n");
      AWallpaperPlugin *desktop_plugin = Animation_Wallpaper_HOME_PLUGIN (object);
      Animation_WallpaperPrivate *priv = desktop_plugin->priv;
@@ -552,9 +550,6 @@ fprintf(stderr,"lw_applet_finalize\n");
      if (priv){
             livewp_deinitialize_dbus(priv);
             switch (priv->view){
-               case 0: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE, 
-                                         LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW0);
-                       break;
                case 1: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE, 
                                          LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW1);
                        break;
@@ -564,9 +559,18 @@ fprintf(stderr,"lw_applet_finalize\n");
                case 3: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE, 
                                          LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW3);
                        break;
+               case 4: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE, 
+                                         LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW4);
+                       break;
             }
      }
-
+     while (TRUE){
+        fprintf(stderr,"checking true\n");
+         wpid = wait(&status);
+        if (wpid == priv->pid)
+            break;
+     }
+     fprintf(stderr,"out from applet\n");
 }
 
 static void