From 44f609e5a1331897a289ea22162bb7fef0f0e105 Mon Sep 17 00:00:00 2001 From: Olivier Duchateau Date: Sat, 5 May 2018 21:07:40 +0200 Subject: [PATCH] Use gdk_seat_grab/gdk_seat_ungrab instead deprecated functions --- lib/screenshooter-capture.c | 69 +++++++++++---------------------------------- 1 file changed, 16 insertions(+), 53 deletions(-) diff --git a/lib/screenshooter-capture.c b/lib/screenshooter-capture.c index c610750..fe1a78f 100644 --- a/lib/screenshooter-capture.c +++ b/lib/screenshooter-capture.c @@ -805,7 +805,6 @@ static GdkPixbuf RubberBandData rbdata; GdkPixbuf *screenshot = NULL; GdkWindow *root; - GdkDevice *pointer, *keyboard; GdkGrabStatus res; GdkSeat *seat; GdkCursor *xhair_cursor; @@ -868,36 +867,19 @@ static GdkPixbuf /* Grab the mouse and the keyboard to prevent any interaction with other * applications */ seat = gdk_display_get_default_seat (gdk_display_get_default ()); - pointer = gdk_seat_get_pointer (seat); - keyboard = gdk_seat_get_keyboard (seat); - - res = gdk_device_grab (keyboard, gtk_widget_get_window (window), - GDK_OWNERSHIP_NONE, FALSE, - GDK_KEY_PRESS_MASK | - GDK_KEY_RELEASE_MASK, - NULL, GDK_CURRENT_TIME); - - if (res != GDK_GRAB_SUCCESS) - { - gtk_widget_destroy (window); - g_object_unref (xhair_cursor); - g_warning ("Failed to grab keyboard"); - return NULL; - } - res = gdk_device_grab (pointer, gtk_widget_get_window (window), - GDK_OWNERSHIP_NONE, FALSE, - GDK_POINTER_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK, - NULL, GDK_CURRENT_TIME); + res = gdk_seat_grab (seat, gtk_widget_get_window (window), + GDK_SEAT_CAPABILITY_POINTER | + GDK_SEAT_CAPABILITY_KEYBOARD, + FALSE, xhair_cursor, + NULL, NULL, NULL); if (res != GDK_GRAB_SUCCESS) { gtk_widget_destroy (window); g_object_unref (xhair_cursor); - gdk_device_ungrab (keyboard, GDK_CURRENT_TIME); - g_warning ("Failed to grab pointer"); + gdk_seat_ungrab (seat); + g_warning ("Failed to grab the seat"); return NULL; } @@ -920,8 +902,7 @@ static GdkPixbuf cleanup: /* Ungrab the mouse and the keyboard */ - gdk_device_ungrab (pointer, GDK_CURRENT_TIME); - gdk_device_ungrab (keyboard, GDK_CURRENT_TIME); + gdk_seat_ungrab (seat); gdk_flush (); return screenshot; @@ -1140,7 +1121,6 @@ static GdkPixbuf gint screen; RbData rbdata; GdkCursor *xhair_cursor; - GdkDevice *pointer, *keyboard; GdkGrabStatus res; GdkSeat *seat; long value_mask; @@ -1163,34 +1143,18 @@ static GdkPixbuf /* Grab the mouse and the keyboard to prevent any interaction with other * applications */ seat = gdk_display_get_default_seat (gdk_display_get_default ()); - pointer = gdk_seat_get_pointer (seat); - keyboard = gdk_seat_get_keyboard (seat); - - res = gdk_device_grab (keyboard, root_window, - GDK_OWNERSHIP_NONE, FALSE, - GDK_KEY_PRESS_MASK | - GDK_KEY_RELEASE_MASK, - NULL, GDK_CURRENT_TIME); - if (res != GDK_GRAB_SUCCESS) - { - g_object_unref (xhair_cursor); - g_warning ("Failed to grab keyboard"); - return NULL; - } - - res = gdk_device_grab (pointer, root_window, - GDK_OWNERSHIP_NONE, FALSE, - GDK_POINTER_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK, - xhair_cursor, GDK_CURRENT_TIME); + res = gdk_seat_grab (seat, root_window, + GDK_SEAT_CAPABILITY_POINTER | + GDK_SEAT_CAPABILITY_KEYBOARD, + FALSE, xhair_cursor, + NULL, NULL, NULL); if (res != GDK_GRAB_SUCCESS) { - gdk_device_ungrab (keyboard, GDK_CURRENT_TIME); + gdk_seat_ungrab (seat); g_object_unref (xhair_cursor); - g_warning ("Failed to grab pointer"); + g_warning ("Failed to grab the seat"); return NULL; } @@ -1235,8 +1199,7 @@ static GdkPixbuf (GdkFilterFunc) region_filter_func, &rbdata); - gdk_device_ungrab (pointer, GDK_CURRENT_TIME); - gdk_device_ungrab (keyboard, GDK_CURRENT_TIME); + gdk_seat_ungrab (seat); /* Get the screenshot's pixbuf */ if (G_LIKELY (!rbdata.cancelled)) -- 2.14.3