diff options
-rw-r--r-- | gdk/wayland/gdkdevice-wayland.c | 12 | ||||
-rw-r--r-- | gdk/wayland/gdkprivate-wayland.h | 4 | ||||
-rw-r--r-- | gdk/wayland/gdkwindow-wayland.c | 16 |
3 files changed, 16 insertions, 16 deletions
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index b8f92fef68..f95b65ab60 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -3021,20 +3021,22 @@ _gdk_wayland_device_get_implicit_grab_serial (GdkWaylandDevice *device, } uint32_t -_gdk_wayland_device_get_last_implicit_grab_serial (GdkWaylandDevice *device, - GdkEventSequence **sequence) +_gdk_wayland_seat_get_last_implicit_grab_serial (GdkSeat *seat, + GdkEventSequence **sequence) { + GdkWaylandSeat *wayland_seat; GdkWaylandTouchData *touch; GHashTableIter iter; uint32_t serial = 0; - g_hash_table_iter_init (&iter, device->device->touches); + wayland_seat = GDK_WAYLAND_SEAT (seat); + g_hash_table_iter_init (&iter, wayland_seat->touches); if (sequence) *sequence = NULL; - if (device->device->button_press_serial > serial) - serial = device->device->button_press_serial; + if (wayland_seat->button_press_serial > serial) + serial = wayland_seat->button_press_serial; while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &touch)) { diff --git a/gdk/wayland/gdkprivate-wayland.h b/gdk/wayland/gdkprivate-wayland.h index 549851c82c..95ca47e95c 100644 --- a/gdk/wayland/gdkprivate-wayland.h +++ b/gdk/wayland/gdkprivate-wayland.h @@ -184,8 +184,8 @@ void _gdk_wayland_device_manager_remove_seat (GdkDeviceManager *dev GdkKeymap *_gdk_wayland_device_get_keymap (GdkDevice *device); uint32_t _gdk_wayland_device_get_implicit_grab_serial(GdkWaylandDevice *device, const GdkEvent *event); -uint32_t _gdk_wayland_device_get_last_implicit_grab_serial (GdkWaylandDevice *device, - GdkEventSequence **seqence); +uint32_t _gdk_wayland_seat_get_last_implicit_grab_serial (GdkSeat *seat, + GdkEventSequence **seqence); struct wl_data_device * gdk_wayland_device_get_data_device (GdkDevice *gdk_device); void gdk_wayland_device_set_selection (GdkDevice *gdk_device, struct wl_data_source *source); diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 87bdc934ae..aee1165039 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -1316,8 +1316,8 @@ gdk_wayland_window_create_xdg_popup (GdkWindow *window, GdkWaylandDisplay *display = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window)); GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); GdkWindowImplWayland *parent_impl = GDK_WINDOW_IMPL_WAYLAND (parent->impl); - GdkWaylandDevice *device; GdkSeat *gdk_seat; + guint32 serial; int x, y; int parent_x, parent_y; @@ -1328,18 +1328,16 @@ gdk_wayland_window_create_xdg_popup (GdkWindow *window, return; gdk_seat = gdk_display_get_default_seat (GDK_DISPLAY (display)); - device = GDK_WAYLAND_DEVICE (gdk_seat_get_pointer (gdk_seat)); - gdk_wayland_window_get_fake_root_coords (parent, &parent_x, &parent_y); x = window->x - parent_x; y = window->y - parent_y; + serial = _gdk_wayland_seat_get_last_implicit_grab_serial (gdk_seat, NULL); impl->display_server.xdg_popup = xdg_shell_get_xdg_popup (display->xdg_shell, impl->display_server.wl_surface, parent_impl->display_server.wl_surface, - seat, - _gdk_wayland_device_get_last_implicit_grab_serial (device, NULL), + seat, serial, x, y); xdg_popup_add_listener (impl->display_server.xdg_popup, &xdg_popup_listener, window); @@ -2455,8 +2453,8 @@ gdk_wayland_window_begin_resize_drag (GdkWindow *window, if (!impl->display_server.xdg_surface) return; - serial = _gdk_wayland_device_get_last_implicit_grab_serial (GDK_WAYLAND_DEVICE (device), - &sequence); + serial = _gdk_wayland_seat_get_last_implicit_grab_serial (gdk_device_get_seat (device), + &sequence); xdg_surface_resize (impl->display_server.xdg_surface, gdk_wayland_device_get_wl_seat (device), @@ -2492,8 +2490,8 @@ gdk_wayland_window_begin_move_drag (GdkWindow *window, if (!impl->display_server.xdg_surface) return; - serial = _gdk_wayland_device_get_last_implicit_grab_serial (GDK_WAYLAND_DEVICE (device), - &sequence); + serial = _gdk_wayland_seat_get_last_implicit_grab_serial (gdk_device_get_seat (device), + &sequence); xdg_surface_move (impl->display_server.xdg_surface, gdk_wayland_device_get_wl_seat (device), serial); |