shell: Add DelayGrab for client initiated move requests

This commit is contained in:
Victoria Brekenfeld 2025-11-26 13:51:00 +01:00 committed by Victoria Brekenfeld
parent 25904ca189
commit 123add9dee
3 changed files with 664 additions and 3 deletions

View file

@ -3498,6 +3498,22 @@ impl Shell {
let mut start_data =
check_grab_preconditions(seat, serial, client_initiated.then_some(surface))?;
if client_initiated
&& start_data.distance(seat.get_pointer().unwrap().current_location()) < 1.
{
return Some((
MoveGrab::delayed(
start_data,
surface,
seat,
serial,
release,
move_out_of_stack,
),
Focus::Keep,
));
}
let maybe_fullscreen_workspace = self
.workspaces
.spaces_mut()