mirror of
https://github.com/brl/mutter.git
synced 2025-02-02 14:53:03 +00:00
wayland: Refactor pointer gesture .end emission event
We will want to trigger this from multiple places for cancellation. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2640>
This commit is contained in:
parent
0a234f320b
commit
b85f85d665
@ -52,29 +52,41 @@ handle_hold_begin (MetaWaylandPointer *pointer,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
broadcast_end (MetaWaylandPointer *pointer,
|
||||
uint32_t serial,
|
||||
uint32_t time,
|
||||
gboolean cancelled)
|
||||
{
|
||||
MetaWaylandPointerClient *pointer_client;
|
||||
struct wl_resource *resource;
|
||||
|
||||
pointer_client = pointer->focus_client;
|
||||
|
||||
wl_resource_for_each (resource, &pointer_client->hold_gesture_resources)
|
||||
{
|
||||
zwp_pointer_gesture_hold_v1_send_end (resource, serial,
|
||||
time, cancelled);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
handle_hold_end (MetaWaylandPointer *pointer,
|
||||
const ClutterEvent *event)
|
||||
{
|
||||
MetaWaylandPointerClient *pointer_client;
|
||||
MetaWaylandSeat *seat;
|
||||
struct wl_resource *resource;
|
||||
gboolean cancelled = FALSE;
|
||||
uint32_t serial;
|
||||
|
||||
pointer_client = pointer->focus_client;
|
||||
seat = meta_wayland_pointer_get_seat (pointer);
|
||||
serial = wl_display_next_serial (seat->wl_display);
|
||||
|
||||
if (event->touchpad_hold.phase == CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL)
|
||||
cancelled = TRUE;
|
||||
|
||||
wl_resource_for_each (resource, &pointer_client->hold_gesture_resources)
|
||||
{
|
||||
zwp_pointer_gesture_hold_v1_send_end (resource, serial,
|
||||
clutter_event_get_time (event),
|
||||
cancelled);
|
||||
}
|
||||
broadcast_end (pointer, serial,
|
||||
clutter_event_get_time (event),
|
||||
cancelled);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -80,29 +80,41 @@ handle_pinch_update (MetaWaylandPointer *pointer,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
broadcast_end (MetaWaylandPointer *pointer,
|
||||
uint32_t serial,
|
||||
uint32_t time,
|
||||
gboolean cancelled)
|
||||
{
|
||||
MetaWaylandPointerClient *pointer_client;
|
||||
struct wl_resource *resource;
|
||||
|
||||
pointer_client = pointer->focus_client;
|
||||
|
||||
wl_resource_for_each (resource, &pointer_client->pinch_gesture_resources)
|
||||
{
|
||||
zwp_pointer_gesture_pinch_v1_send_end (resource, serial,
|
||||
time, cancelled);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
handle_pinch_end (MetaWaylandPointer *pointer,
|
||||
const ClutterEvent *event)
|
||||
{
|
||||
MetaWaylandPointerClient *pointer_client;
|
||||
MetaWaylandSeat *seat;
|
||||
struct wl_resource *resource;
|
||||
gboolean cancelled = FALSE;
|
||||
uint32_t serial;
|
||||
|
||||
pointer_client = pointer->focus_client;
|
||||
seat = meta_wayland_pointer_get_seat (pointer);
|
||||
serial = wl_display_next_serial (seat->wl_display);
|
||||
|
||||
if (event->touchpad_pinch.phase == CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL)
|
||||
cancelled = TRUE;
|
||||
|
||||
wl_resource_for_each (resource, &pointer_client->pinch_gesture_resources)
|
||||
{
|
||||
zwp_pointer_gesture_pinch_v1_send_end (resource, serial,
|
||||
clutter_event_get_time (event),
|
||||
cancelled);
|
||||
}
|
||||
broadcast_end (pointer, serial,
|
||||
clutter_event_get_time (event),
|
||||
cancelled);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -76,29 +76,41 @@ handle_swipe_update (MetaWaylandPointer *pointer,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
broadcast_end (MetaWaylandPointer *pointer,
|
||||
uint32_t serial,
|
||||
uint32_t time,
|
||||
gboolean cancelled)
|
||||
{
|
||||
MetaWaylandPointerClient *pointer_client;
|
||||
struct wl_resource *resource;
|
||||
|
||||
pointer_client = pointer->focus_client;
|
||||
|
||||
wl_resource_for_each (resource, &pointer_client->swipe_gesture_resources)
|
||||
{
|
||||
zwp_pointer_gesture_swipe_v1_send_end (resource, serial,
|
||||
time, cancelled);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
handle_swipe_end (MetaWaylandPointer *pointer,
|
||||
const ClutterEvent *event)
|
||||
{
|
||||
MetaWaylandPointerClient *pointer_client;
|
||||
MetaWaylandSeat *seat;
|
||||
struct wl_resource *resource;
|
||||
gboolean cancelled = FALSE;
|
||||
uint32_t serial;
|
||||
|
||||
pointer_client = pointer->focus_client;
|
||||
seat = meta_wayland_pointer_get_seat (pointer);
|
||||
serial = wl_display_next_serial (seat->wl_display);
|
||||
|
||||
if (event->touchpad_swipe.phase == CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL)
|
||||
cancelled = TRUE;
|
||||
|
||||
wl_resource_for_each (resource, &pointer_client->swipe_gesture_resources)
|
||||
{
|
||||
zwp_pointer_gesture_swipe_v1_send_end (resource, serial,
|
||||
clutter_event_get_time (event),
|
||||
cancelled);
|
||||
}
|
||||
broadcast_end (pointer, serial,
|
||||
clutter_event_get_time (event),
|
||||
cancelled);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
Loading…
x
Reference in New Issue
Block a user