[gtk/gtk-3-24] Don't scan the seat's slave list for keyboards.
- From: John Ralls <jralls src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gtk-3-24] Don't scan the seat's slave list for keyboards.
- Date: Mon, 11 Mar 2019 23:17:16 +0000 (UTC)
commit 28848176e542841bf36d3f18ee5eea69a84bdf85
Author: John Ralls <jralls ceridwen us>
Date: Mon Mar 11 14:35:05 2019 -0700
Don't scan the seat's slave list for keyboards.
There aren't any, just the master_keyboard which one accesses with
gdk_seat_get_keyboard().
gdk/quartz/gdkevents-quartz.c | 34 ++++++++--------------------------
1 file changed, 8 insertions(+), 26 deletions(-)
---
diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c
index 9d3d5bad58..83c1232b83 100644
--- a/gdk/quartz/gdkevents-quartz.c
+++ b/gdk/quartz/gdkevents-quartz.c
@@ -629,33 +629,15 @@ find_toplevel_under_pointer (GdkDisplay *display,
static GdkWindow *
find_toplevel_for_keyboard_event (NSEvent *nsevent)
{
- GList *list, *l;
- GdkWindow *window;
- GdkDisplay *display;
- GdkQuartzView *view;
- GdkSeat *seat;
-
- view = (GdkQuartzView *)[[nsevent window] contentView];
- window = [view gdkWindow];
-
- display = gdk_window_get_display (window);
- seat = gdk_display_get_default_seat (display);
-
- list = gdk_seat_get_slaves (seat, GDK_SEAT_CAPABILITY_KEYBOARD);
- for (l = list; l; l = l->next)
- {
- GdkDeviceGrabInfo *grab;
- GdkDevice *device = l->data;
-
- grab = _gdk_display_get_last_device_grab (display, device);
- if (grab && grab->window && !grab->owner_events)
- {
- window = gdk_window_get_effective_toplevel (grab->window);
- break;
- }
- }
+ GdkQuartzView *view = (GdkQuartzView *)[[nsevent window] contentView];
+ GdkWindow *window = [view gdkWindow];
+ GdkDisplay *display = gdk_window_get_display (window);
+ GdkSeat *seat = gdk_display_get_default_seat (display);
+ GdkDevice *device = gdk_seat_get_keyboard (seat);
+ GdkDeviceGrabInfo *grab = _gdk_display_get_last_device_grab (display, device);
- g_list_free (list);
+ if (grab && grab->window && !grab->owner_events)
+ window = gdk_window_get_effective_toplevel (grab->window);
return window;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]