Commit a040ed55 authored by Carlos Garnacho's avatar Carlos Garnacho

gdk: Keep reference on tools from motion/button events.

parent 8c9231db
...@@ -623,6 +623,8 @@ gdk_event_copy (const GdkEvent *event) ...@@ -623,6 +623,8 @@ gdk_event_copy (const GdkEvent *event)
if (event->button.axes) if (event->button.axes)
new_event->button.axes = g_memdup (event->button.axes, new_event->button.axes = g_memdup (event->button.axes,
sizeof (gdouble) * gdk_device_get_n_axes (event->any.device)); sizeof (gdouble) * gdk_device_get_n_axes (event->any.device));
if (event->button.tool)
g_object_ref (new_event->button.tool);
break; break;
case GDK_TOUCH_BEGIN: case GDK_TOUCH_BEGIN:
...@@ -638,6 +640,8 @@ gdk_event_copy (const GdkEvent *event) ...@@ -638,6 +640,8 @@ gdk_event_copy (const GdkEvent *event)
if (event->motion.axes) if (event->motion.axes)
new_event->motion.axes = g_memdup (event->motion.axes, new_event->motion.axes = g_memdup (event->motion.axes,
sizeof (gdouble) * gdk_device_get_n_axes (event->any.device)); sizeof (gdouble) * gdk_device_get_n_axes (event->any.device));
if (event->motion.tool)
g_object_ref (new_event->motion.tool);
break; break;
default: default:
...@@ -2085,9 +2089,9 @@ gdk_event_set_device_tool (GdkEvent *event, ...@@ -2085,9 +2089,9 @@ gdk_event_set_device_tool (GdkEvent *event,
{ {
if (event->any.type == GDK_BUTTON_PRESS || if (event->any.type == GDK_BUTTON_PRESS ||
event->any.type == GDK_BUTTON_RELEASE) 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) else if (event->any.type == GDK_MOTION_NOTIFY)
event->motion.tool = tool; g_set_object (&event->motion.tool, tool);
} }
void void
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment