[gtk+/wip/carlosg/event-as-object: 14/23] gdk: Keep reference on tools from motion/button events.



commit 7f45d9edc058ffab48f7e218f50cc44bc64943a0
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Oct 31 12:21:29 2017 +0100

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

 gdk/gdkevents.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index 01405c5..eeb172d 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -752,6 +752,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:
@@ -767,6 +769,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;
 
     case GDK_OWNER_CHANGE:
@@ -2328,9 +2332,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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]