[Xfce4-commits] <ristretto:master> Let the main-window respond to changes in the desktop-type setting.
Stephan Arts
noreply at xfce.org
Wed Nov 23 06:52:03 CET 2011
Updating branch refs/heads/master
to e51e44fde610ddd55236076d353395ed7abc778c (commit)
from 3334e9ceda2da092b471ec8b5e00d9b5be8fd0ca (commit)
commit e51e44fde610ddd55236076d353395ed7abc778c
Author: Stephan Arts <stephan at xfce.org>
Date: Tue Nov 15 09:46:54 2011 +0100
Let the main-window respond to changes in the desktop-type setting.
src/main_window.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 69 insertions(+), 0 deletions(-)
diff --git a/src/main_window.c b/src/main_window.c
index 56a5b59..8541688 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -253,6 +253,11 @@ cb_rstto_wrap_images_changed (
GObject *object,
GParamSpec *pspec,
gpointer user_data);
+static void
+cb_rstto_desktop_type_changed (
+ GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data);
@@ -430,6 +435,11 @@ rstto_main_window_init (RsttoMainWindow *window)
//window->priv->wallpaper_manager = rstto_gnome_wallpaper_manager_new();
}
+ if (!g_strcasecmp(desktop_type, "none"))
+ {
+ window->priv->wallpaper_manager = NULL;
+ }
+
g_free (desktop_type);
desktop_type = NULL;
}
@@ -733,6 +743,11 @@ rstto_main_window_init (RsttoMainWindow *window)
"notify::wrap-images",
G_CALLBACK (cb_rstto_wrap_images_changed),
window);
+ g_signal_connect (
+ G_OBJECT(window->priv->settings_manager),
+ "notify::desktop-type",
+ G_CALLBACK (cb_rstto_desktop_type_changed),
+ window);
}
@@ -1171,6 +1186,10 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
{
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/set-as-wallpaper"), TRUE);
}
+ else
+ {
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/set-as-wallpaper"), FALSE);
+ }
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/zoom-menu"), TRUE);
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/rotation-menu"), TRUE);
@@ -1266,6 +1285,10 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
{
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/set-as-wallpaper"), TRUE);
}
+ else
+ {
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/set-as-wallpaper"), FALSE);
+ }
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/zoom-menu"), TRUE);
gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/rotation-menu"), TRUE);
@@ -2981,3 +3004,49 @@ cb_rstto_wrap_images_changed (
RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
rstto_main_window_update_buttons (window);
}
+
+static void
+cb_rstto_desktop_type_changed (
+ GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data)
+{
+ RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
+ gchar *desktop_type = NULL;
+
+ if (window->priv->wallpaper_manager)
+ {
+ g_object_unref(window->priv->wallpaper_manager);
+ window->priv->wallpaper_manager = NULL;
+ }
+
+ desktop_type = rstto_settings_get_string_property (window->priv->settings_manager, "desktop-type");
+
+ if (desktop_type)
+ {
+ if (!g_strcasecmp(desktop_type, "xfce"))
+ {
+ window->priv->wallpaper_manager = rstto_xfce_wallpaper_manager_new();
+ }
+
+ if (!g_strcasecmp(desktop_type, "gnome"))
+ {
+ //window->priv->wallpaper_manager = rstto_gnome_wallpaper_manager_new();
+ }
+
+ if (!g_strcasecmp(desktop_type, "none"))
+ {
+ window->priv->wallpaper_manager = NULL;
+ }
+
+ g_free (desktop_type);
+ desktop_type = NULL;
+ }
+ else
+ {
+ /* Default to xfce */
+ window->priv->wallpaper_manager = rstto_xfce_wallpaper_manager_new();
+ }
+
+ rstto_main_window_update_buttons (window);
+}
More information about the Xfce4-commits
mailing list