summaryrefslogtreecommitdiff
path: root/gdk/gdkevents.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-10-31 12:21:29 +0100
committerCarlos Garnacho <carlosg@gnome.org>2017-12-14 01:05:48 +0100
commita040ed55ccefa7c749d668025963082848c6148c (patch)
tree9f8a24268d6772533d2db6ffab3a269c534a5c72 /gdk/gdkevents.c
parent8c9231dbb4a464a622ccd930b7994ae141242447 (diff)
downloadgtk+-a040ed55ccefa7c749d668025963082848c6148c.tar.gz
gdk: Keep reference on tools from motion/button events.
Diffstat (limited to 'gdk/gdkevents.c')
-rw-r--r--gdk/gdkevents.c8
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