[gtk+] GdkWindow: Listen to ::seat-removed in order to remove pointer info
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GdkWindow: Listen to ::seat-removed in order to remove pointer info
- Date: Tue, 15 Dec 2015 22:32:18 +0000 (UTC)
commit ee549c9ded901283e8d7d13e1634b5e9f7780c52
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue Dec 15 23:22:00 2015 +0100
GdkWindow: Listen to ::seat-removed in order to remove pointer info
Our actions on ::device-removed only actually applied to master
pointers, so listening to GdkDisplay::seat-removed and operating
on the seat pointer is equivalent.
gdk/gdkwindow.c | 20 +++++++++-----------
1 files changed, 9 insertions(+), 11 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 961c787..a1dadc3 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -478,10 +478,12 @@ gdk_window_class_init (GdkWindowClass *klass)
}
static void
-device_removed_cb (GdkDeviceManager *device_manager,
- GdkDevice *device,
- GdkWindow *window)
+seat_removed_cb (GdkDisplay *display,
+ GdkSeat *seat,
+ GdkWindow *window)
{
+ GdkDevice *device = gdk_seat_get_pointer (seat);
+
window->devices_inside = g_list_remove (window->devices_inside, device);
g_hash_table_remove (window->device_cursor, device);
@@ -493,10 +495,9 @@ static void
gdk_window_finalize (GObject *object)
{
GdkWindow *window = GDK_WINDOW (object);
- GdkDeviceManager *device_manager;
- device_manager = gdk_display_get_device_manager (gdk_window_get_display (window));
- g_signal_handlers_disconnect_by_func (device_manager, device_removed_cb, window);
+ g_signal_handlers_disconnect_by_func (gdk_window_get_display (window),
+ seat_removed_cb, window);
if (!GDK_WINDOW_DESTROYED (window))
{
@@ -1287,7 +1288,6 @@ gdk_window_new (GdkWindow *parent,
gboolean native;
GdkEventMask event_mask;
GdkWindow *real_parent;
- GdkDeviceManager *device_manager;
g_return_val_if_fail (attributes != NULL, NULL);
@@ -1451,10 +1451,8 @@ gdk_window_new (GdkWindow *parent,
(attributes->cursor) :
NULL));
- device_manager = gdk_display_get_device_manager (gdk_window_get_display (parent));
- g_signal_connect (device_manager, "device-removed",
- G_CALLBACK (device_removed_cb), window);
-
+ g_signal_connect (gdk_window_get_display (parent), "seat-removed",
+ G_CALLBACK (seat_removed_cb), window);
if ((_gdk_gl_flags & (GDK_GL_ALWAYS | GDK_GL_DISABLE)) == GDK_GL_ALWAYS)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]