2009-02-26 Alejandro G. Castro <alex@igalia.com>
authorAlejandro G. Castro <alex@igalia.com>
Thu, 26 Feb 2009 12:32:16 +0000 (12:32 +0000)
committerAlejandro G. Castro <alex@igalia.com>
Thu, 26 Feb 2009 12:32:16 +0000 (12:32 +0000)
* src/hildon-pannable-area.c,
(hildon_pannable_area_init),
(hildon_pannable_area_remove): Removed some unnecessary casts.
(hildon_pannable_area_dispose): Disconnected some signals before
releasing the adjustments.

ChangeLog
src/hildon-pannable-area.c

index dbbbbde..cfd1780 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-02-26  Alejandro G. Castro  <alex@igalia.com>
+
+       * src/hildon-pannable-area.c,
+       (hildon_pannable_area_init),
+       (hildon_pannable_area_remove): Removed some unnecessary casts.
+       (hildon_pannable_area_dispose): Disconnected some signals before
+       releasing the adjustments.
+
 2009-02-26  Alberto Garcia  <agarcia@igalia.com>
 
        * src/hildon-edit-toolbar.c (hildon_edit_toolbar_init):
index d36aa35..b84ca6a 100644 (file)
@@ -541,15 +541,15 @@ hildon_pannable_area_init (HildonPannableArea * area)
   g_object_ref_sink (G_OBJECT (priv->hadjust));
   g_object_ref_sink (G_OBJECT (priv->vadjust));
 
-  g_signal_connect_swapped (G_OBJECT (priv->hadjust), "value-changed",
+  g_signal_connect_swapped (priv->hadjust, "value-changed",
                            G_CALLBACK (hildon_pannable_area_adjust_value_changed), area);
-  g_signal_connect_swapped (G_OBJECT (priv->vadjust), "value-changed",
+  g_signal_connect_swapped (priv->vadjust, "value-changed",
                            G_CALLBACK (hildon_pannable_area_adjust_value_changed), area);
-  g_signal_connect_swapped (G_OBJECT (priv->hadjust), "changed",
+  g_signal_connect_swapped (priv->hadjust, "changed",
                            G_CALLBACK (hildon_pannable_area_adjust_changed), area);
-  g_signal_connect_swapped (G_OBJECT (priv->vadjust), "changed",
+  g_signal_connect_swapped (priv->vadjust, "changed",
                            G_CALLBACK (hildon_pannable_area_adjust_changed), area);
-  g_signal_connect (G_OBJECT (area), "grab-notify",
+  g_signal_connect (area, "grab-notify",
                     G_CALLBACK (hildon_pannable_area_grab_notify), NULL);
 }
 
@@ -728,21 +728,38 @@ hildon_pannable_area_dispose (GObject * object)
     priv->motion_event_scroll_timeout = 0;
   }
 
+  if (child) {
+    g_signal_handlers_disconnect_by_func (child,
+                                          hildon_pannable_area_child_mapped,
+                                          object);
+  }
+
+  g_signal_handlers_disconnect_by_func (object,
+                                        hildon_pannable_area_grab_notify,
+                                        NULL);
+
   if (priv->hadjust) {
+    g_signal_handlers_disconnect_by_func (priv->hadjust,
+                                          hildon_pannable_area_adjust_value_changed,
+                                          object);
+    g_signal_handlers_disconnect_by_func (priv->hadjust,
+                                          hildon_pannable_area_adjust_changed,
+                                          object);
     g_object_unref (priv->hadjust);
     priv->hadjust = NULL;
   }
+
   if (priv->vadjust) {
+    g_signal_handlers_disconnect_by_func (priv->vadjust,
+                                          hildon_pannable_area_adjust_value_changed,
+                                          object);
+    g_signal_handlers_disconnect_by_func (priv->vadjust,
+                                          hildon_pannable_area_adjust_changed,
+                                          object);
     g_object_unref (priv->vadjust);
     priv->vadjust = NULL;
   }
 
-  if (child) {
-    g_signal_handlers_disconnect_by_func (GTK_WIDGET (child),
-                                          G_CALLBACK (hildon_pannable_area_child_mapped),
-                                          object);
-  }
-
   if (G_OBJECT_CLASS (hildon_pannable_area_parent_class)->dispose)
     G_OBJECT_CLASS (hildon_pannable_area_parent_class)->dispose (object);
 }
@@ -2440,8 +2457,8 @@ hildon_pannable_area_remove (GtkContainer *container, GtkWidget *child)
 
   gtk_widget_set_scroll_adjustments (child, NULL, NULL);
 
-  g_signal_handlers_disconnect_by_func (GTK_WIDGET (child),
-                                        G_CALLBACK (hildon_pannable_area_child_mapped),
+  g_signal_handlers_disconnect_by_func (child,
+                                        hildon_pannable_area_child_mapped,
                                         container);
 
   /* chain parent class handler to remove child */