From: Vlad Vasiliev Date: Fri, 30 Apr 2010 14:26:32 +0000 (+0300) Subject: start stop function is done X-Git-Url: http://git.maemo.org/git/?p=livewp;a=commitdiff_plain;h=c8ab42bc0197c85b003307f6d01ffc2e7a3c0390 start stop function is done --- diff --git a/applet/src/livewp-scene.c b/applet/src/livewp-scene.c index b41f9af..2871871 100644 --- a/applet/src/livewp-scene.c +++ b/applet/src/livewp-scene.c @@ -33,7 +33,11 @@ destroy_scene(AWallpaperPlugin *desktop_plugin) tmp = g_slist_next(tmp); } g_slist_free(tmp); - g_free(desktop_plugin->priv->scene); + desktop_plugin->priv->scene->actors = NULL; + if (desktop_plugin->priv->scene){ + g_free(desktop_plugin->priv->scene); + desktop_plugin->priv->scene = NULL; + } } void diff --git a/applet/src/livewp-settings.c b/applet/src/livewp-settings.c index e5c3b37..bd208cb 100644 --- a/applet/src/livewp-settings.c +++ b/applet/src/livewp-settings.c @@ -157,6 +157,7 @@ lw_settings(Animation_WallpaperPrivate *priv, gpointer data){ switch(result){ case GTK_RESPONSE_YES: + /* Check theme */ if (hildon_button_get_value(HILDON_BUTTON (theme_button))){ if (priv->theme) g_free(priv->theme); @@ -166,23 +167,28 @@ lw_settings(Animation_WallpaperPrivate *priv, gpointer data){ priv->theme = g_strdup("Modern"); if (!strcmp(hildon_button_get_value(HILDON_BUTTON (theme_button)), _("Matrix"))) priv->theme = g_strdup("Matrix"); - if (hildon_check_button_get_active (rich_animation_button)) - priv->rich_animation = TRUE; - else - priv->rich_animation = FALSE; - if (hildon_check_button_get_active (enable_button)){ - if (!check_applet_state()) - start_applet(); - }else - if (check_applet_state()) - stop_applet(); } + /* Check rich animation */ + if (hildon_check_button_get_active (rich_animation_button)) + priv->rich_animation = TRUE; + else + priv->rich_animation = FALSE; + /* Save config */ save_config(priv); - send_dbus_signal (priv, + /* action with applet */ + if (hildon_check_button_get_active (enable_button)){ + if (!check_applet_state()) + start_applet(); + else + send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE, LIVEWP_SIGNAL_PATH, LIVEWP_RELOAD_CONFIG); - break; + }else + if (check_applet_state()) + stop_applet(); + + break; default: case GTK_RESPONSE_OK: break; @@ -199,7 +205,6 @@ lw_settings(Animation_WallpaperPrivate *priv, gpointer data){ gboolean check_applet_state(void){ FILE *file_in; - FILE *file_out; gchar buffer[2048]; gboolean result = FALSE; @@ -207,8 +212,8 @@ check_applet_state(void){ while (!feof(file_in)) { memset(buffer, 0, sizeof(buffer)); fgets(buffer, sizeof(buffer) - 1, file_in); - if (buffer && - !strcmp(buffer, "X-Desktop-File=/usr/share/applications/hildon-home/livewp-home-widget.desktop\n")){ + if (!strcmp(buffer, + "X-Desktop-File=/usr/share/applications/hildon-home/livewp-home-widget.desktop\n")){ result = TRUE; break; } @@ -218,10 +223,10 @@ check_applet_state(void){ return result; } /*******************************************************************************/ +void start_applet(void){ - FILE *file_in; FILE *file_out; - gchar buffer[2048]; + file_out = fopen("/home/user/.config/hildon-desktop/home.plugins","w+"); if (file_out){ fputs("\n", file_out); @@ -231,6 +236,7 @@ start_applet(void){ } } /*******************************************************************************/ +void stop_applet(void){ FILE *file_in; FILE *file_out; @@ -242,7 +248,7 @@ stop_applet(void){ while (!feof(file_in)) { memset(buffer, 0, sizeof(buffer)); fgets(buffer, sizeof(buffer) - 1, file_in); - if (buffer && strcmp(buffer, "[livewp-home-widget.desktop-0]\n") && + if (strcmp(buffer, "[livewp-home-widget.desktop-0]\n") && strcmp(buffer, "X-Desktop-File=/usr/share/applications/hildon-home/livewp-home-widget.desktop\n")) fputs(buffer, file_out); } diff --git a/applet/src/livewp-settings.h b/applet/src/livewp-settings.h index 81b0793..a0888b1 100644 --- a/applet/src/livewp-settings.h +++ b/applet/src/livewp-settings.h @@ -29,6 +29,6 @@ gboolean check_applet_state(void); void reload_scene(AWallpaperPlugin *desktop_plugin); GtkWidget* create_settings(void); void show_settings(GtkWidget *widget, Animation_WallpaperPrivate *priv); -start_applet(void); -stop_applet(void); +void start_applet(void); +void stop_applet(void);