--- 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 @@
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), + gdk_seat_grab(gdk_event_get_seat(event), + gtk_widget_get_window(gtkwin->notebook), + GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, event, @@ -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)); --- 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 @@
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); - 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, 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)
- gdk_device_ungrab(device, activate_time);
@@ -1294,16 +1283,13 @@
pidgin_status_box_popdown(PidginStatusBox *box, GdkEvent *event)
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); --- 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 @@
GtkWidget *tipwindow = pidgin_tooltip.tipwindow;
- GdkDeviceManager *devmgr;
- 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 @@
struct gstroke_metrics *metrics;
- GdkDeviceManager *devmgr;
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),
@@ -118,8 +118,9 @@
- gdk_device_ungrab(gdk_event_get_device(event), event->button.time);
+ 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,
+ gdk_seat_grab(gdk_event_get_seat(event), gtk_widget_get_window(widget), + GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, event, timer_id = g_timeout_add (GSTROKE_TIMEOUT_DURATION,
gstroke_timeout, widget);
@@ -181,7 +181,7 @@
last_mouse_position.invalid = TRUE;
g_source_remove (timer_id);
- gdk_device_ungrab(gdk_event_get_device(event), event->button.time);
+ gdk_seat_ungrab(gdk_event_get_seat(event));