diff options
author | Monsta <[email protected]> | 2015-03-19 17:24:55 +0300 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2015-04-06 11:21:42 +0200 |
commit | aac60a700814be8ecd72b5ab18eef95c1c4ad68d (patch) | |
tree | 33d4bbb725f0e77198e6d0f2d9f7b54149e5c602 | |
parent | dc5a473cbec079114a2dfcbf482b72f649b3dc92 (diff) | |
download | pluma-aac60a700814be8ecd72b5ab18eef95c1c4ad68d.tar.bz2 pluma-aac60a700814be8ecd72b5ab18eef95c1c4ad68d.tar.xz |
filebrowser plugin: first connect to settings, then read them.
fixes the issue with GLib >= 2.43,
https://git.gnome.org/browse/glib/commit/?id=8ff5668a458344da22d30491e3ce726d861b3619
Closes https://github.com/mate-desktop/pluma/pull/109
-rw-r--r-- | plugins/filebrowser/pluma-file-browser-plugin.c | 54 |
1 files changed, 30 insertions, 24 deletions
diff --git a/plugins/filebrowser/pluma-file-browser-plugin.c b/plugins/filebrowser/pluma-file-browser-plugin.c index 11b77189..750b2be0 100644 --- a/plugins/filebrowser/pluma-file-browser-plugin.c +++ b/plugins/filebrowser/pluma-file-browser-plugin.c @@ -312,6 +312,18 @@ on_confirm_trash_changed (GSettings *settings, data->confirm_trash = enable; } +static gboolean +have_click_policy (void) +{ + GSettings *settings = g_settings_new (CAJA_SCHEMA); + gchar *pref = g_settings_get_string (settings, CAJA_CLICK_POLICY_KEY); + gboolean result = (pref != NULL); + + g_free (pref); + g_object_unref (settings); + return result; +} + static void install_caja_prefs (PlumaFileBrowserPluginData *data) { @@ -320,41 +332,35 @@ install_caja_prefs (PlumaFileBrowserPluginData *data) PlumaFileBrowserViewClickPolicy policy; PlumaFileBrowserView *view; - /* Get click_policy */ - pref = g_settings_get_string (data->caja_settings, CAJA_CLICK_POLICY_KEY); + if (have_click_policy ()) { + g_signal_connect (data->caja_settings, + "changed::" CAJA_CLICK_POLICY_KEY, + G_CALLBACK (on_click_policy_changed), + data); + } + + g_signal_connect (data->caja_settings, + "changed::" CAJA_ENABLE_DELETE_KEY, + G_CALLBACK (on_enable_delete_changed), + data); + g_signal_connect (data->caja_settings, + "changed::" CAJA_CONFIRM_TRASH_KEY, + G_CALLBACK (on_confirm_trash_changed), + data); + + pref = g_settings_get_string (data->caja_settings, CAJA_CLICK_POLICY_KEY); policy = click_policy_from_string (pref); + g_free (pref); view = pluma_file_browser_widget_get_browser_view (data->tree_widget); pluma_file_browser_view_set_click_policy (view, policy); - if (pref) { - g_signal_connect (data->caja_settings, - "changed::" CAJA_CLICK_POLICY_KEY, - G_CALLBACK (on_click_policy_changed), - data); - g_free (pref); - } - - /* Get enable_delete */ prefb = g_settings_get_boolean (data->caja_settings, CAJA_ENABLE_DELETE_KEY); - g_object_set (G_OBJECT (data->tree_widget), "enable-delete", prefb, NULL); - g_signal_connect (data->caja_settings, - "changed::" CAJA_ENABLE_DELETE_KEY, - G_CALLBACK (on_enable_delete_changed), - data); - - /* Get confirm_trash */ prefb = g_settings_get_boolean (data->caja_settings, CAJA_CONFIRM_TRASH_KEY); - data->confirm_trash = prefb; - - g_signal_connect (data->caja_settings, - "changed::" CAJA_CONFIRM_TRASH_KEY, - G_CALLBACK (on_confirm_trash_changed), - data); } static void |