]> spindle.queued.net Git - midori/commitdiff
Correct handling of settings in MidoriView
authorChristian Dywan <christian@twotoasts.de>
Sun, 4 Jan 2009 20:50:07 +0000 (21:50 +0100)
committerChristian Dywan <christian@twotoasts.de>
Sun, 4 Jan 2009 20:50:07 +0000 (21:50 +0100)
midori/midori-view.c

index cbe74a4b0cb80c434c7c78b7ec603eb4b0643e82..9bd03bec5266cd29d7e43974e3c2ca134995d891 100644 (file)
@@ -1210,8 +1210,9 @@ midori_view_finalize (GObject* object)
 
     view = MIDORI_VIEW (object);
 
-    g_signal_handlers_disconnect_by_func (view->settings,
-        midori_view_settings_notify_cb, view);
+    if (view->settings)
+        g_signal_handlers_disconnect_by_func (view->settings,
+            midori_view_settings_notify_cb, view);
 
     katze_assign (view->uri, NULL);
     katze_assign (view->title, NULL);
@@ -1401,14 +1402,17 @@ midori_view_set_settings (MidoriView*        view,
         return;
 
     if (view->settings)
+    {
         g_signal_handlers_disconnect_by_func (view->settings,
             midori_view_settings_notify_cb, view);
-    katze_object_assign (view->settings, g_object_ref (settings));
-    if (view->web_view)
-        g_object_set (view->web_view, "settings", view->settings, NULL);
-    _midori_view_update_settings (view);
-    g_signal_connect (settings, "notify",
-        G_CALLBACK (midori_view_settings_notify_cb), view);
+        g_object_ref (settings);
+        if (view->web_view)
+            g_object_set (view->web_view, "settings", view->settings, NULL);
+        _midori_view_update_settings (view);
+        g_signal_connect (settings, "notify",
+            G_CALLBACK (midori_view_settings_notify_cb), view);
+    }
+    katze_object_assign (view->settings, settings);
     g_object_notify (G_OBJECT (view), "settings");
 }