wayland/data-device: Move position updates to a common function
The function will be expanded in a later commit. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3941>
This commit is contained in:
@ -479,6 +479,19 @@ drag_grab_focus (MetaWaylandEventHandler *handler,
|
|||||||
meta_wayland_drag_grab_set_focus (drag_grab, surface);
|
meta_wayland_drag_grab_set_focus (drag_grab, surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
data_device_update_position (MetaWaylandDragGrab *drag_grab,
|
||||||
|
graphene_point_t *point)
|
||||||
|
{
|
||||||
|
MetaFeedbackActor *feedback_actor =
|
||||||
|
META_FEEDBACK_ACTOR (drag_grab->feedback_actor);
|
||||||
|
|
||||||
|
if (!drag_grab->drag_surface)
|
||||||
|
return;
|
||||||
|
|
||||||
|
meta_feedback_actor_set_position (feedback_actor, point->x, point->y);
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
drag_grab_motion (MetaWaylandEventHandler *handler,
|
drag_grab_motion (MetaWaylandEventHandler *handler,
|
||||||
const ClutterEvent *event,
|
const ClutterEvent *event,
|
||||||
@ -496,19 +509,16 @@ drag_grab_motion (MetaWaylandEventHandler *handler,
|
|||||||
drag_grab->sequence != clutter_event_get_event_sequence (event))
|
drag_grab->sequence != clutter_event_get_event_sequence (event))
|
||||||
return CLUTTER_EVENT_STOP;
|
return CLUTTER_EVENT_STOP;
|
||||||
|
|
||||||
|
clutter_event_get_position (event, &point);
|
||||||
|
|
||||||
if (drag_grab->drag_focus)
|
if (drag_grab->drag_focus)
|
||||||
{
|
{
|
||||||
clutter_event_get_coords (event, &point.x, &point.y);
|
|
||||||
time_ms = clutter_event_get_time (event);
|
time_ms = clutter_event_get_time (event);
|
||||||
meta_wayland_surface_drag_dest_motion (drag_grab->drag_focus,
|
meta_wayland_surface_drag_dest_motion (drag_grab->drag_focus,
|
||||||
point.x, point.y, time_ms);
|
point.x, point.y, time_ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (drag_grab->drag_surface)
|
data_device_update_position (drag_grab, &point);
|
||||||
{
|
|
||||||
meta_feedback_actor_update (META_FEEDBACK_ACTOR (drag_grab->feedback_actor),
|
|
||||||
event);
|
|
||||||
}
|
|
||||||
|
|
||||||
meta_dnd_wayland_on_motion_event (meta_backend_get_dnd (backend), event);
|
meta_dnd_wayland_on_motion_event (meta_backend_get_dnd (backend), event);
|
||||||
|
|
||||||
@ -746,8 +756,7 @@ meta_wayland_data_device_start_drag (MetaWaylandDataDevice *data_devic
|
|||||||
0, 0);
|
0, 0);
|
||||||
clutter_actor_add_child (drag_grab->feedback_actor, drag_surface_actor);
|
clutter_actor_add_child (drag_grab->feedback_actor, drag_surface_actor);
|
||||||
|
|
||||||
meta_feedback_actor_set_position (META_FEEDBACK_ACTOR (drag_grab->feedback_actor),
|
data_device_update_position (drag_grab, &pos);
|
||||||
pos.x, pos.y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
input = meta_wayland_seat_get_input (seat);
|
input = meta_wayland_seat_get_input (seat);
|
||||||
|
Reference in New Issue
Block a user