Use new GdkSeat API instead of deprecated GdkDevice.

Tue, 08 Oct 2019 20:05:06 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Tue, 08 Oct 2019 20:05:06 -0400
changeset 39945
a463a1d03965
parent 39936
69aecf36a4e0
child 39946
f1b741397c35

Use new GdkSeat API instead of deprecated GdkDevice.

pidgin/gtkconv.c file | annotate | diff | comparison | revisions
pidgin/gtkstatusbox.c file | annotate | diff | comparison | revisions
pidgin/pidgintooltip.c file | annotate | diff | comparison | revisions
pidgin/plugins/gestures/stroke-draw.c file | annotate | diff | comparison | revisions
--- a/pidgin/gtkconv.c	Mon Oct 07 03:26:15 2019 -0400
+++ b/pidgin/gtkconv.c	Tue Oct 08 20:05:06 2019 -0400
@@ -7161,11 +7161,13 @@
 	/* Grab the pointer */
 	gtk_grab_add(gtkwin->notebook);
 	device = gdk_event_get_device(event);
-	if (!gdk_display_device_is_grabbed(gdk_device_get_display(device), device))
-		gdk_device_grab(device, gtk_widget_get_window(gtkwin->notebook),
-		                GDK_OWNERSHIP_WINDOW, FALSE,
-		                GDK_BUTTON1_MOTION_MASK | GDK_BUTTON_RELEASE_MASK,
-		                cursor, gdk_event_get_time(event));
+	if (!gdk_display_device_is_grabbed(gdk_device_get_display(device),
+	                                   device)) {
+		gdk_seat_grab(gdk_event_get_seat(event),
+		              gtk_widget_get_window(gtkwin->notebook),
+		              GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, event,
+		              NULL, NULL);
+	}
 }
 
 static gboolean
@@ -7443,7 +7445,7 @@
 
 	device = gdk_event_get_device((GdkEvent *)e);
 	if (gdk_display_device_is_grabbed(gdk_device_get_display(device), device)) {
-		gdk_device_ungrab(device, gdk_event_get_time((GdkEvent *)e));
+		gdk_seat_ungrab(gdk_event_get_seat((GdkEvent *)e));
 		gtk_grab_remove(widget);
 	}
 
--- a/pidgin/gtkstatusbox.c	Mon Oct 07 03:26:15 2019 -0400
+++ b/pidgin/gtkstatusbox.c	Tue Oct 08 20:05:06 2019 -0400
@@ -1241,24 +1241,13 @@
 static gboolean
 popup_grab_on_window(GdkWindow *window, GdkEvent *event)
 {
-	guint32 activate_time = gdk_event_get_time(event);
-	GdkDevice *device = gdk_event_get_device(event);
+	GdkSeat *seat = gdk_event_get_seat(event);
 	GdkGrabStatus status;
 
-	status = gdk_device_grab(device, window, GDK_OWNERSHIP_WINDOW, TRUE,
-	                         GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
-	                         GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK |
-	                         GDK_KEY_RELEASE_MASK, NULL, activate_time);
+	status = gdk_seat_grab(seat, window, GDK_SEAT_CAPABILITY_ALL, TRUE, NULL,
+	                       event, NULL, NULL);
 	if (status == GDK_GRAB_SUCCESS) {
-		status = gdk_device_grab(gdk_device_get_associated_device(device),
-		                         window, GDK_OWNERSHIP_WINDOW, TRUE,
-		                         GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
-		                         GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK |
-		                         GDK_KEY_RELEASE_MASK, NULL, activate_time);
-		if (status == GDK_GRAB_SUCCESS)
-			return TRUE;
-		else
-			gdk_device_ungrab(device, activate_time);
+		return TRUE;
 	}
 
 	return FALSE;
@@ -1294,16 +1283,13 @@
 static void
 pidgin_status_box_popdown(PidginStatusBox *box, GdkEvent *event)
 {
-	guint32 time;
-	GdkDevice *device;
+	GdkSeat *seat;
 	gtk_widget_hide(box->popup_window);
 	box->popup_in_progress = FALSE;
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(box->toggle_button), FALSE);
 	gtk_grab_remove(box->popup_window);
-	time = gdk_event_get_time(event);
-	device = gdk_event_get_device(event);
-	gdk_device_ungrab(device, time);
-	gdk_device_ungrab(gdk_device_get_associated_device(device), time);
+	seat = gdk_event_get_seat(event);
+	gdk_seat_ungrab(seat);
 }
 
 static gboolean
--- a/pidgin/pidgintooltip.c	Mon Oct 07 03:26:15 2019 -0400
+++ b/pidgin/pidgintooltip.c	Tue Oct 08 20:05:06 2019 -0400
@@ -133,11 +133,11 @@
 	GdkRectangle mon_size;
 	GtkWidget *tipwindow = pidgin_tooltip.tipwindow;
 
-	GdkDeviceManager *devmgr;
+	GdkSeat *seat;
 	GdkDevice *dev;
 
-	devmgr = gdk_display_get_device_manager(gdk_display_get_default());
-	dev = gdk_device_manager_get_client_pointer(devmgr);
+	seat = gdk_display_get_default_seat(gdk_display_get_default());
+	dev = gdk_seat_get_pointer(seat);
 	gdk_device_get_position(dev, &screen, &x, &y);
 
 	mon_num = gdk_screen_get_monitor_at_point(screen, x, y);
--- a/pidgin/plugins/gestures/stroke-draw.c	Mon Oct 07 03:26:15 2019 -0400
+++ b/pidgin/plugins/gestures/stroke-draw.c	Tue Oct 08 20:05:06 2019 -0400
@@ -57,13 +57,13 @@
 {
 	gint x, y;
 	struct gstroke_metrics *metrics;
-	GdkDeviceManager *devmgr;
+	GdkSeat *seat;
 	GdkDevice *dev;
 
 	g_return_if_fail(widget != NULL);
 
-	devmgr = gdk_display_get_device_manager(gtk_widget_get_display(widget));
-	dev = gdk_device_manager_get_client_pointer(devmgr);
+	seat = gdk_display_get_default_seat(gtk_widget_get_display(widget));
+	dev = gdk_seat_get_pointer(seat);
 	gdk_window_get_device_position(gtk_widget_get_window(widget),
 		dev, &x, &y, NULL);
 
@@ -118,8 +118,9 @@
 
 	timer_id = 0;
 
-	if( event != NULL )
-		gdk_device_ungrab(gdk_event_get_device(event), event->button.time);
+	if (event != NULL) {
+		gdk_seat_ungrab(gdk_event_get_seat(event));
+	}
 
 	if (gstroke_draw_strokes() && gstroke_disp != NULL) {
 	    /* get rid of the invisible stroke window */
@@ -159,10 +160,9 @@
 		  cursor = gdk_cursor_new_for_display(display, GDK_PENCIL);
 	  }
 
-      gdk_device_grab(gdk_event_get_device(event),
-                      gtk_widget_get_window(widget), GDK_OWNERSHIP_WINDOW,
-                      FALSE, GDK_BUTTON_RELEASE_MASK, cursor,
-                      event->button.time);
+      gdk_seat_grab(gdk_event_get_seat(event), gtk_widget_get_window(widget),
+                    GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, event,
+                    NULL, NULL);
       timer_id = g_timeout_add (GSTROKE_TIMEOUT_DURATION,
 				  gstroke_timeout, widget);
       return TRUE;
@@ -181,7 +181,7 @@
       last_mouse_position.invalid = TRUE;
       original_widget = NULL;
       g_source_remove (timer_id);
-      gdk_device_ungrab(gdk_event_get_device(event), event->button.time);
+	  gdk_seat_ungrab(gdk_event_get_seat(event));
       timer_id = 0;
 
       {

mercurial