summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-08-31 14:57:35 +0000
committerMatthias Clasen <mclasen@redhat.com>2020-08-31 14:57:35 +0000
commit4efd8051109a19a3c09d5349e4a468a8138dc401 (patch)
tree3cccf60799330592a39e01ccb465cd425e95f7c9
parent39fb8d3cec5acd27afacb2e59ed7fe2b94310e02 (diff)
parenta98001978c8cdbb4cbd70e3d02a16f29092e6896 (diff)
downloadgtk+-4efd8051109a19a3c09d5349e4a468a8138dc401.tar.gz
Merge branch 'wip/carlosg/last-device-refcount' into 'gtk-3-24'
gdk: Keep a reference on the last source device See merge request GNOME/gtk!2510
-rw-r--r--gdk/gdkdisplay.c1
-rw-r--r--gdk/gdkwindow.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index 240c99fa43..748f54860c 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -278,6 +278,7 @@ free_pointer_info (GdkPointerWindowInfo *info)
{
if (info->toplevel_under_pointer)
g_object_unref (info->toplevel_under_pointer);
+ g_clear_object (&info->last_slave);
g_slice_free (GdkPointerWindowInfo, info);
}
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 6ae0f86710..18ebfa5714 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -9931,7 +9931,7 @@ _gdk_windowing_got_event (GdkDisplay *display,
if (source_device != pointer_info->last_slave &&
gdk_device_get_device_type (source_device) == GDK_DEVICE_TYPE_SLAVE)
- pointer_info->last_slave = source_device;
+ g_set_object (&pointer_info->last_slave, source_device);
else if (pointer_info->last_slave)
source_device = pointer_info->last_slave;
}