diff options
author | raveit65 <[email protected]> | 2017-08-02 19:55:37 +0200 |
---|---|---|
committer | raveit65 <[email protected]> | 2017-08-15 10:52:56 +0200 |
commit | 976cbe77d23089794712f9402d7f082bcd7dde86 (patch) | |
tree | 02a5aad2c08eb375a00ab47704d0d647c6a80888 /typing-break/drwright.c | |
parent | c92ca8b67d8209ed1bd33bbe566ea263fc22d597 (diff) | |
download | mate-control-center-976cbe77d23089794712f9402d7f082bcd7dde86.tar.bz2 mate-control-center-976cbe77d23089794712f9402d7f082bcd7dde86.tar.xz |
typing-break: avoid deprecated GDK pointer and keyboard types
Diffstat (limited to 'typing-break/drwright.c')
-rw-r--r-- | typing-break/drwright.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/typing-break/drwright.c b/typing-break/drwright.c index 2a07f040..6cc6b248 100644 --- a/typing-break/drwright.c +++ b/typing-break/drwright.c @@ -322,9 +322,42 @@ static gboolean grab_keyboard_on_window (GdkWindow *window, guint32 activate_time) { + GdkDisplay *display; +#if GTK_CHECK_VERSION (3, 20, 0) + GdkSeat *seat; +#else + GdkDeviceManager *device_manager; + GdkDevice *pointer; + GdkDevice *keyboard; +#endif GdkGrabStatus status; - status = gdk_keyboard_grab (window, TRUE, activate_time); + display = gdk_window_get_display (window); +#if GTK_CHECK_VERSION (3, 20, 0) + seat = gdk_display_get_default_seat (display); + + status = gdk_seat_grab (seat, + window, + GDK_SEAT_CAPABILITY_KEYBOARD, + TRUE, + NULL, + NULL, + NULL, + NULL); +#else + device_manager = gdk_display_get_device_manager (display); + pointer = gdk_device_manager_get_client_pointer (device_manager); + keyboard = gdk_device_get_associated_device (pointer); + + status = gdk_device_grab (keyboard, + window, + GDK_OWNERSHIP_NONE, + TRUE, + GDK_KEY_PRESS_MASK, + NULL, + activate_time); +#endif + if (status == GDK_GRAB_SUCCESS) { return TRUE; } |