diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2010-07-26 12:37:22 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2010-07-26 12:38:32 (GMT) |
commit | 1c17408db1cb842cdde4634c41beb173ded4399a (patch) | |
tree | 30fc9f976f7d7e23e367f0eb3cfca187be281f15 /shell/ev-window.c | |
parent | bc9d46074ee96705dc9bdd336650a6f9efa84ee4 (diff) |
[shell] Do not leak settings objects when document reloads
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r-- | shell/ev-window.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c index 3292319..202e3c7 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -1249,18 +1249,22 @@ ev_window_setup_document (EvWindow *ev_window) ev_window_title_set_document (ev_window->priv->title, document); ev_window_title_set_uri (ev_window->priv->title, ev_window->priv->uri); - ev_window->priv->settings = g_settings_new (GS_SCHEMA_NAME); - g_signal_connect (ev_window->priv->settings, - "changed::"GS_OVERRIDE_RESTRICTIONS, - G_CALLBACK (override_restrictions_changed), - ev_window); + if (!ev_window->priv->settings) { + ev_window->priv->settings = g_settings_new (GS_SCHEMA_NAME); + g_signal_connect (ev_window->priv->settings, + "changed::"GS_OVERRIDE_RESTRICTIONS, + G_CALLBACK (override_restrictions_changed), + ev_window); + } #ifdef HAVE_DESKTOP_SCHEMAS - ev_window->priv->lockdown_settings = g_settings_new (GS_LOCKDOWN_SCHEMA_NAME); - g_signal_connect (ev_window->priv->lockdown_settings, - "changed", - G_CALLBACK (lockdown_changed), - ev_window); + if (!ev_window->priv->lockdown_settings) { + ev_window->priv->lockdown_settings = g_settings_new (GS_LOCKDOWN_SCHEMA_NAME); + g_signal_connect (ev_window->priv->lockdown_settings, + "changed", + G_CALLBACK (lockdown_changed), + ev_window); + } #endif ev_window_setup_action_sensitivity (ev_window); |