diff options
author | Matthias Clasen <mclasen@redhat.com> | 2016-05-01 13:23:12 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2016-05-05 15:04:01 -0400 |
commit | e3e84de96c0a99dd8bd838337ecb0d7ab315f156 (patch) | |
tree | dbc31b72f496438db36bfc7f46a28fe7e175ee72 | |
parent | 964eb99a5e1e748e33828a9969e9d1b2bc2d70d0 (diff) | |
download | gtk+-e3e84de96c0a99dd8bd838337ecb0d7ab315f156.tar.gz |
gesture: Don't leak stashed events
These events were never freed.
-rw-r--r-- | gtk/gtkgesture.c | 13 |
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); |