From 777a6bf13118bfbb3bacdeee1a80d48387dd6f12 Mon Sep 17 00:00:00 2001 From: "Alejandro G. Castro" Date: Tue, 11 Aug 2009 10:41:21 +0200 Subject: [PATCH] Fixed memory leak of the event window of the pannable. * hildon/hildon-pannable-area.c (hildon_pannable_area_button_press_cb), (hildon_pannable_area_motion_notify_cb), (hildon_pannable_area_button_release_cb): Added unrefs to reduce the spurious ref added in the copy, fixes leak of window. Fixes: NB#130900 (HildonPannableArea will leak it's event_window if it's realized without showing and then deleted) --- ChangeLog | 11 +++++++++++ hildon/hildon-pannable-area.c | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/ChangeLog b/ChangeLog index fe8620c..9f0b6e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2009-08-11 Alejandro G. Castro + + * hildon/hildon-pannable-area.c + (hildon_pannable_area_button_press_cb), + (hildon_pannable_area_motion_notify_cb), + (hildon_pannable_area_button_release_cb): Added unrefs to reduce + the spurious ref added in the copy, fixes leak of window. + + Fixes: NB#130900 (HildonPannableArea will leak it's event_window + if it's realized without showing and then deleted) + 2009-08-10 Alberto Garcia [Release 2.1.94] diff --git a/hildon/hildon-pannable-area.c b/hildon/hildon-pannable-area.c index 86342e4..33033dc 100644 --- a/hildon/hildon-pannable-area.c +++ b/hildon/hildon-pannable-area.c @@ -1979,6 +1979,8 @@ hildon_pannable_area_button_press_cb (GtkWidget * widget, (gpointer) & priv->child); event = (GdkEventButton *) gdk_event_copy ((GdkEvent *) event); + /* remove the reference we added with the copy */ + g_object_unref (priv->event_window); event->x = x; event->y = y; priv->cx = x; @@ -2638,6 +2640,8 @@ hildon_pannable_area_motion_notify_cb (GtkWidget * widget, if (priv->child) { /* Send motion notify to child */ event = (GdkEventMotion *) gdk_event_copy ((GdkEvent *) event); + /* remove the reference we added with the copy */ + g_object_unref (priv->event_window); event->x = priv->cx + (event->x - priv->ix); event->y = priv->cy + (event->y - priv->iy); event->window = g_object_ref (priv->child); @@ -2779,6 +2783,8 @@ hildon_pannable_area_button_release_cb (GtkWidget * widget, event->x, event->y, &x, &y, GDK_BUTTON_RELEASE_MASK); event = (GdkEventButton *) gdk_event_copy ((GdkEvent *) event); + /* remove the reference we added with the copy */ + g_object_unref (priv->event_window); event->x = x; event->y = y; -- 1.7.9.5