summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2016-05-01 13:23:12 -0400
committerMatthias Clasen <mclasen@redhat.com>2016-05-05 15:04:01 -0400
commite3e84de96c0a99dd8bd838337ecb0d7ab315f156 (patch)
treedbc31b72f496438db36bfc7f46a28fe7e175ee72
parent964eb99a5e1e748e33828a9969e9d1b2bc2d70d0 (diff)
downloadgtk+-e3e84de96c0a99dd8bd838337ecb0d7ab315f156.tar.gz
gesture: Don't leak stashed events
These events were never freed.
-rw-r--r--gtk/gtkgesture.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c
index 47fa3c56ce..8eaa518778 100644
--- a/gtk/gtkgesture.c
+++ b/gtk/gtkgesture.c
@@ -994,13 +994,24 @@ gtk_gesture_class_init (GtkGestureClass *klass)
}
static void
+free_point_data (gpointer data)
+{
+ PointData *point = data;
+
+ if (point->event)
+ gdk_event_free (point->event);
+
+ g_free (point);
+}
+
+static void
gtk_gesture_init (GtkGesture *gesture)
{
GtkGesturePrivate *priv;
priv = gtk_gesture_get_instance_private (gesture);
priv->points = g_hash_table_new_full (NULL, NULL, NULL,
- (GDestroyNotify) g_free);
+ (GDestroyNotify) free_point_data);
gtk_event_controller_set_event_mask (GTK_EVENT_CONTROLLER (gesture),
GDK_TOUCH_MASK |
GDK_TOUCHPAD_GESTURE_MASK);