Support client initiated window move (_NET_WM_MOVERESIZE)

Part of #185
This commit is contained in:
Shawn Wallace 2025-09-06 12:56:58 -04:00
parent 41e865c8d3
commit 0b94ae1eb8
8 changed files with 239 additions and 65 deletions

View file

@ -110,6 +110,7 @@ pub struct SurfaceData {
pub last_enter_serial: Option<u32>,
pub fractional: Option<WpFractionalScaleV1>,
pub viewport: Option<Viewport>,
pub moving: bool,
}
impl SurfaceData {
@ -1541,6 +1542,10 @@ impl Dispatch<XdgToplevel, SurfaceId> for State {
};
toplevel.parent = parent;
}
xdg_toplevel::Request::Move { seat: _, serial: _ } => {
let data = state.surfaces.get_mut(surface_id).unwrap();
data.moving = true;
}
other => todo!("unhandled request {other:?}"),
}
}
@ -1862,6 +1867,7 @@ impl Dispatch<WlCompositor, ()> for State {
last_enter_serial: None,
fractional: None,
viewport: None,
moving: false,
},
);
state.last_surface_id = Some(SurfaceId(id));