[gtk: 1/2] gdk/wayland: Use serial of the latest implicit grab available




commit eeda25ab044ee9678c7b68bf580a4d3d7beb62da
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Oct 19 12:46:09 2022 +0200

    gdk/wayland: Use serial of the latest implicit grab available
    
    When getting the serial for primary/clipboard selections we used a
    function that largely relied on a GdkEvent being passed. We have
    another available function that looks up the most recent serial
    given the ongoing touch/tablet input as well.
    
    This is the second best, compared to actually knowing the
    input/device from the event that was received by the UI an triggered
    the clipboard operation, and is already in use in other places
    (e.g. window dragging). It is valid for these situations too.
    
    Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5250

 gdk/wayland/gdkdevice-wayland.c  | 2 +-
 gdk/wayland/gdkprimary-wayland.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index 98e08ecb5f..c6a3bacaa8 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -5323,7 +5323,7 @@ gdk_wayland_device_set_selection (GdkDevice             *gdk_device,
   g_return_if_fail (GDK_IS_WAYLAND_DEVICE (gdk_device));
 
   seat = GDK_WAYLAND_SEAT (gdk_device_get_seat (gdk_device));
-  serial = _gdk_wayland_seat_get_implicit_grab_serial (GDK_SEAT (seat), NULL);
+  serial = _gdk_wayland_seat_get_last_implicit_grab_serial (seat, NULL);
   wl_data_device_set_selection (seat->data_device, source, serial);
 }
 
diff --git a/gdk/wayland/gdkprimary-wayland.c b/gdk/wayland/gdkprimary-wayland.c
index 6cef2f3968..b501deb66b 100644
--- a/gdk/wayland/gdkprimary-wayland.c
+++ b/gdk/wayland/gdkprimary-wayland.c
@@ -292,7 +292,8 @@ gdk_wayland_primary_claim (GdkClipboard       *clipboard,
         }
 
       seat = gdk_display_get_default_seat (GDK_DISPLAY (wdisplay));
-      serial = _gdk_wayland_seat_get_implicit_grab_serial (seat, NULL);
+      serial = _gdk_wayland_seat_get_last_implicit_grab_serial (GDK_WAYLAND_SEAT (seat),
+                                                                NULL);
       zwp_primary_selection_device_v1_set_selection (cb->primary_data_device,
                                                      cb->source,
                                                      serial);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]