time_t last_alive_event;
gchar *theme_string_parametr1;
GstElement *pipeline;
+ gboolean running;
};
struct _AWallpaperPlugin
strid = g_strdup(hd_plugin_item_get_plugin_id (HD_PLUGIN_ITEM (widget)));
+
id = strid[strlen(strid)-1] - '0';
desktop_plugin->priv->view = id;
g_free(strid);
execvp("/usr/bin/livewp", child_argv);
fprintf(stderr,"Problem with new process");
}
+ fprintf(stderr,"dssssssddddddddddddddddddd\n");
+ desktop_plugin_visible_notify(widget, NULL, desktop_plugin->priv);
#if 0
/* Load config */
read_config(desktop_plugin->priv);
return TRUE; /* keep running this event */
}
-static void
+void
desktop_plugin_visible_notify (GObject *object,
GParamSpec *spec,
AWallpaperPlugin *desktop_plugin)
void livewp_deinitialize_dbus(Animation_WallpaperPrivate *priv);
gint current_active_view(void);
gboolean long_timeout (AWallpaperPlugin *desktop_plugin);
+void desktop_plugin_visible_notify (GObject *object, GParamSpec *spec, AWallpaperPlugin *desktop_plugin);
+
#endif
view_state_changed (Animation_WallpaperPrivate *priv)
{
if (priv->visible){
+ if (!priv->running){
+ if (!strcmp(priv->theme, "Xsnow")){
+ init_scene_Xsnow(priv->desktop_plugin);
+ }
+ }
if (priv->pipeline)
gst_element_set_state (priv->pipeline, GST_STATE_PLAYING);
if (priv->long_timer == 0 ){
priv->short_timer = 0;
}
destroy_scene(priv->desktop_plugin);
- fprintf(stderr, "PID %i\n", priv->podpid);
if (priv->podpid > 1)
kill (priv->podpid, SIGTERM);
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;
// fprintf(stderr, "PARAMETR %s\n", desktop_plugin->priv->theme_string_parametr1);
// run_string = g_strdup_printf("/usr/bin/mplayer -vo x11 -wid %d %s\n", \
GDK_WINDOW_XID(desktop_plugin->priv->window->window), desktop_plugin->priv->theme_string_parametr1);
+ if (!desktop_plugin->priv->visible)
+ return;
run_string= g_strdup_printf("/usr/bin/xsnow");
parsestring(run_string, child_argv);
+ desktop_plugin->priv->running = TRUE;
desktop_plugin->priv->podpid = fork();
if (desktop_plugin->priv->podpid == 0){
execvp("/usr/bin/xsnow", child_argv);