diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-10-31 12:21:29 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2017-12-14 01:05:48 +0100 |
commit | a040ed55ccefa7c749d668025963082848c6148c (patch) | |
tree | 9f8a24268d6772533d2db6ffab3a269c534a5c72 /gdk/gdkevents.c | |
parent | 8c9231dbb4a464a622ccd930b7994ae141242447 (diff) | |
download | gtk+-a040ed55ccefa7c749d668025963082848c6148c.tar.gz |
gdk: Keep reference on tools from motion/button events.
Diffstat (limited to 'gdk/gdkevents.c')
-rw-r--r-- | gdk/gdkevents.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index afcf94c232..19bf7e6f53 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -623,6 +623,8 @@ gdk_event_copy (const GdkEvent *event) if (event->button.axes) new_event->button.axes = g_memdup (event->button.axes, sizeof (gdouble) * gdk_device_get_n_axes (event->any.device)); + if (event->button.tool) + g_object_ref (new_event->button.tool); break; case GDK_TOUCH_BEGIN: @@ -638,6 +640,8 @@ gdk_event_copy (const GdkEvent *event) if (event->motion.axes) new_event->motion.axes = g_memdup (event->motion.axes, sizeof (gdouble) * gdk_device_get_n_axes (event->any.device)); + if (event->motion.tool) + g_object_ref (new_event->motion.tool); break; default: @@ -2085,9 +2089,9 @@ gdk_event_set_device_tool (GdkEvent *event, { if (event->any.type == GDK_BUTTON_PRESS || event->any.type == GDK_BUTTON_RELEASE) - event->button.tool = tool; + g_set_object (&event->button.tool, tool); else if (event->any.type == GDK_MOTION_NOTIFY) - event->motion.tool = tool; + g_set_object (&event->motion.tool, tool); } void |