[gnome-control-center] keyboard: Simplify keyboard grab
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] keyboard: Simplify keyboard grab
- Date: Tue, 6 Feb 2018 09:47:18 +0000 (UTC)
commit a1f57ce50a9168ca97d07cfa1c41db509894c747
Author: Bastien Nocera <hadess hadess net>
Date: Wed Jan 31 17:04:50 2018 +0100
keyboard: Simplify keyboard grab
https://bugzilla.gnome.org/show_bug.cgi?id=793070
panels/keyboard/cc-keyboard-shortcut-editor.c | 34 +++++++-----------------
1 files changed, 10 insertions(+), 24 deletions(-)
---
diff --git a/panels/keyboard/cc-keyboard-shortcut-editor.c b/panels/keyboard/cc-keyboard-shortcut-editor.c
index 24eacdf..22190a9 100644
--- a/panels/keyboard/cc-keyboard-shortcut-editor.c
+++ b/panels/keyboard/cc-keyboard-shortcut-editor.c
@@ -222,33 +222,15 @@ static void
grab_seat (CcKeyboardShortcutEditor *self)
{
GdkGrabStatus status;
- GdkDevice *pointer;
- GdkDevice *device;
GdkWindow *window;
- GList *seats;
+ GdkSeat *seat;
window = gtk_widget_get_window (GTK_WIDGET (self));
- if (!window)
- return;
-
- seats = gdk_display_list_seats (gdk_window_get_display (window));
- if (!seats)
- return;
+ g_assert (window);
- device = gdk_seat_get_keyboard (seats->data);
- g_list_free (seats);
+ seat = gdk_display_get_default_seat (gdk_window_get_display (window));
- if (!device) {
- g_debug ("Keyboard grab unsuccessful, no keyboard in seat");
- return;
- }
-
- if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
- pointer = gdk_device_get_associated_device (device);
- else
- pointer = device;
-
- status = gdk_seat_grab (gdk_device_get_seat (pointer),
+ status = gdk_seat_grab (seat,
window,
GDK_SEAT_CAPABILITY_KEYBOARD,
FALSE,
@@ -257,10 +239,14 @@ grab_seat (CcKeyboardShortcutEditor *self)
NULL,
NULL);
- if (status != GDK_GRAB_SUCCESS)
+ if (status != GDK_GRAB_SUCCESS) {
+ g_warning ("Grabbing keyboard failed");
return;
+ }
- self->grab_pointer = pointer;
+ self->grab_pointer = gdk_seat_get_keyboard (seat);
+ if (!self->grab_pointer)
+ self->grab_pointer = gdk_seat_get_pointer (seat);
gtk_grab_add (GTK_WIDGET (self));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]