fixed bug #6497 livewp 5 and 6 and 7 processes allocating RAM while
[livewp] / applet / src / livewp-main.c
index 8482706..0863122 100644 (file)
@@ -333,23 +333,49 @@ main(int argc, char *argv[])
 {
     HildonProgram       *app;
     int view = 1;
+    GSList *stlist = NULL;
+    GSList *tmp = NULL;
+    GConfClient *gconf_client = NULL;
+    GConfValue *value = NULL;
+    gboolean result = TRUE;
 
+    /* Ininitializing */
+    hildon_gtk_init (&argc, &argv);
+    app = HILDON_PROGRAM (hildon_program_get_instance());
+    g_set_application_name (PACKAGE);
 
+    /* Set view from argument string */
     if (argc == 2)
         view = atoi(argv[1]);
     if (view < 1 || view > 9)
         view = 1;
 
+    /* Checking of running view */ 
+    gconf_client = gconf_client_get_default();
+    if (gconf_client){
+        stlist = gconf_client_get_list(gconf_client,
+                                           "/apps/osso/hildon-desktop/views/active",
+                                           GCONF_VALUE_INT, NULL);
+        if (stlist){
+            tmp = stlist;
+            result = FALSE;
+            while (tmp != NULL){
+                  if (view == GPOINTER_TO_INT(tmp->data))
+                      result = TRUE;
+                  tmp = g_slist_next(tmp);
+            }
+            g_slist_free(stlist);
+        }
+        g_object_unref(gconf_client);
+    }
+    if (!result)
+        exit (-3);
+
     AWallpaperPlugin *desktop_plugin = g_new0 (AWallpaperPlugin, 1);
     Animation_WallpaperPrivate *priv = g_new0 (Animation_WallpaperPrivate, 1);
     desktop_plugin->priv = priv;
 
 
-    /* Ininitializing */
-    hildon_gtk_init (&argc, &argv);
-    app = HILDON_PROGRAM (hildon_program_get_instance());
-    g_set_application_name (PACKAGE);
-
     priv->osso = osso_initialize("org.maemo.livewp", VERSION, TRUE, NULL);
     if(!priv->osso){
         fprintf(stderr,"osso_initialize failed\n");