From 9291cd1bbe447201dd0be8e7b808a1785e2fd316 Mon Sep 17 00:00:00 2001 From: Eric Koegel Date: Wed, 4 Apr 2012 09:19:51 +0300 Subject: [PATCH] Apply single click option on startup (Bug #8615) Moved the property bind function to xfdesktop_icon_view_new rather than the init function which will allow it to work correctly when xfdesktop starts up. Additionally switched to using xfconf_channel_get rather than new. --- settings/main.c | 3 +-- src/main.c | 2 +- src/xfdesktop-icon-view.c | 22 ++++++++++------------ 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/settings/main.c b/settings/main.c index 74e7172..0733fb2 100644 --- a/settings/main.c +++ b/settings/main.c @@ -1687,7 +1687,7 @@ main(int argc, char **argv) return 1; } - channel = xfconf_channel_new(XFDESKTOP_CHANNEL); + channel = xfconf_channel_get(XFDESKTOP_CHANNEL); xfdesktop_settings_dialog_add_screens(gxml, channel); @@ -1720,7 +1720,6 @@ main(int argc, char **argv) g_object_unref(G_OBJECT(gxml)); - g_object_unref(G_OBJECT(channel)); xfconf_shutdown(); return 0; diff --git a/src/main.c b/src/main.c index 54dbaee..76b275b 100644 --- a/src/main.c +++ b/src/main.c @@ -357,7 +357,7 @@ main(int argc, char **argv) g_error_free(error); error = NULL; } else - channel = xfconf_channel_new(XFDESKTOP_CHANNEL); + channel = xfconf_channel_get(XFDESKTOP_CHANNEL); nscreens = gdk_display_get_n_screens(gdpy); desktops = g_new0(GtkWidget *, nscreens); diff --git a/src/xfdesktop-icon-view.c b/src/xfdesktop-icon-view.c index cf2e977..ef5e869 100644 --- a/src/xfdesktop-icon-view.c +++ b/src/xfdesktop-icon-view.c @@ -672,14 +672,6 @@ xfdesktop_icon_view_init(XfdesktopIconView *icon_view) g_object_set(G_OBJECT(icon_view), "has-tooltip", TRUE, NULL); g_signal_connect(G_OBJECT(icon_view), "query-tooltip", G_CALLBACK(xfdesktop_icon_view_show_tooltip), NULL); - - icon_view->priv->channel = xfconf_channel_new (XFDESKTOP_CHANNEL); - - xfconf_g_property_bind(icon_view->priv->channel, - "/desktop-icons/single-click", - G_TYPE_BOOLEAN, - G_OBJECT(icon_view), - "single_click"); GTK_WIDGET_SET_FLAGS(GTK_WIDGET(icon_view), GTK_NO_WINDOW); } @@ -702,11 +694,9 @@ xfdesktop_icon_view_finalize(GObject *obj) g_list_free(icon_view->priv->pending_icons); /* icon_view->priv->icons should be cleared in _unrealize() */ - if (icon_view->priv->channel) { - g_object_unref (icon_view->priv->channel); + if (icon_view->priv->channel) icon_view->priv->channel = NULL; - } - + G_OBJECT_CLASS(xfdesktop_icon_view_parent_class)->finalize(obj); } @@ -3387,6 +3377,14 @@ xfdesktop_icon_view_new(XfdesktopIconViewManager *manager) icon_view = g_object_new(XFDESKTOP_TYPE_ICON_VIEW, NULL); icon_view->priv->manager = manager; + + icon_view->priv->channel = xfconf_channel_get(XFDESKTOP_CHANNEL); + + xfconf_g_property_bind(icon_view->priv->channel, + "/desktop-icons/single-click", + G_TYPE_BOOLEAN, + G_OBJECT(icon_view), + "single_click"); return GTK_WIDGET(icon_view); } -- 1.7.5.4