* for the code
*
* This software is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful, but
case 3: child_argv[1] = "4";
break;
}
-
- desktop_plugin->priv->pid = fork();
- if (desktop_plugin->priv->pid == 0){
- execvp("/usr/bin/livewp", child_argv);
- fprintf(stderr,"Problem with new process");
+ desktop_plugin->priv->one_in_all_view = get_one_in_all_views_from_config();
+ /* Check one theme in all view mode */
+ if (!desktop_plugin->priv->one_in_all_view ||
+ (desktop_plugin->priv->one_in_all_view && id == 0)){
+ /* Start a new process */
+ desktop_plugin->priv->pid = fork();
+ if (desktop_plugin->priv->pid == 0){
+ execvp("/usr/bin/livewp", child_argv);
+ fprintf(stderr,"Problem with new process");
+ }
}
desktop_plugin_visible_notify((GObject *)widget, NULL, desktop_plugin);
-#if 0
- /* Load config */
- read_config(desktop_plugin->priv);
-
- init_scene_theme(desktop_plugin);
-
- desktop_plugin->priv->long_timer = g_timeout_add(LONG_TIMER, (GtkFunction)long_timeout, desktop_plugin);
-#endif
screen = gtk_widget_get_screen (widget);
gtk_widget_set_colormap (widget,
gdk_screen_get_rgba_colormap (screen));
gboolean visible;
Animation_WallpaperPrivate *priv = desktop_plugin->priv;
g_object_get (object, "is-on-current-desktop", &visible, NULL);
- /* fprintf (stderr, "is-on-current-desktop changed. visible: %u", visible); */
+ fprintf (stderr, "LWP is-on-current-desktop changed. visible: %u", visible);
if (priv){
+ if (priv->one_in_all_view){
+ if (visible)
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PLAY_LIVEBG_ON_VIEW1);
+ else{
+ /* start any application on current view */
+ if ((priv->view + 1) == current_active_view())
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PAUSE_LIVEBG_ON_VIEW1);
+ }
+ return;
+ }
switch (priv->view + 1){
case 1: if (visible)
send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
LIVEWP_SIGNAL_PATH, LIVEWP_PAUSE_LIVEBG_ON_VIEW4);
break;
+ case 5: if (visible)
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PLAY_LIVEBG_ON_VIEW5);
+ else
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PAUSE_LIVEBG_ON_VIEW5);
+ break;
+ case 6: if (visible)
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PLAY_LIVEBG_ON_VIEW6);
+ else
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PAUSE_LIVEBG_ON_VIEW6);
+ break;
+ case 7: if (visible)
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PLAY_LIVEBG_ON_VIEW7);
+ else
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PAUSE_LIVEBG_ON_VIEW7);
+ break;
+ case 8: if (visible)
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PLAY_LIVEBG_ON_VIEW8);
+ else
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PAUSE_LIVEBG_ON_VIEW8);
+ break;
+ case 9: if (visible)
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PLAY_LIVEBG_ON_VIEW9);
+ else
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_PAUSE_LIVEBG_ON_VIEW9);
+ break;
+
}
- }
+ }
+
}
gboolean
case 4: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
LIVEWP_SIGNAL_PATH, LIVEWP_ALIVE_LIVEBG_ON_VIEW4);
break;
+ case 5: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_ALIVE_LIVEBG_ON_VIEW5);
+ break;
+ case 6: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_ALIVE_LIVEBG_ON_VIEW6);
+ break;
+ case 7: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_ALIVE_LIVEBG_ON_VIEW7);
+ break;
+ case 8: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_ALIVE_LIVEBG_ON_VIEW8);
+ break;
+ case 9: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_ALIVE_LIVEBG_ON_VIEW9);
+ break;
+
+
}
return TRUE;
priv->xapplet = 0;
priv->yapplet = 0;
priv->scene = NULL;
+ priv->pid = 0;
priv->theme = g_strdup("Modern");
//priv->theme = g_strdup("Accel");
desktop_plugin->priv->main_widget = gtk_fixed_new();
destroy_scene(desktop_plugin);
}
*/
-
if (priv){
switch (priv->view + 1){
case 1: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
case 4: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW4);
break;
+ case 5: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW5);
+ break;
+ case 6: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW6);
+ break;
+ case 7: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW7);
+ break;
+ case 8: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW8);
+ break;
+ case 9: send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE,
+ LIVEWP_SIGNAL_PATH, LIVEWP_STOP_LIVEBG_ON_VIEW9);
+ break;
}
}
if(priv->alive_timer > 0)
g_source_remove(priv->alive_timer);
livewp_deinitialize_dbus(priv);
- while (TRUE){
- wpid = wait(&status);
- if (wpid == priv->pid)
- break;
+
+ if (priv->pid >0){
+ while (TRUE){
+ wpid = wait(&status);
+ if (wpid == priv->pid)
+ break;
+ }
}
}
static void
desktop_widget_finalize (GObject *object)
{
+fprintf(stderr,"desktop lw_applet_finalize\n");
/* Call the base class's implementation: */
G_OBJECT_CLASS (animation_wallpaper_plugin_parent_class)->finalize (object);
}