feat(wayland+xwayland): initial window setup
This commit is contained in:
@@ -346,13 +346,13 @@ impl Dispatch<XdgSurface, Mutex<XdgSurfaceData>, WaylandState> for WaylandState
|
|||||||
debug!(?toplevel, ?xdg_surface, "Create XDG toplevel");
|
debug!(?toplevel, ?xdg_surface, "Create XDG toplevel");
|
||||||
|
|
||||||
if toplevel.version() >= EVT_WM_CAPABILITIES_SINCE {
|
if toplevel.version() >= EVT_WM_CAPABILITIES_SINCE {
|
||||||
toplevel.wm_capabilities(vec![2, 3, 4]);
|
toplevel.wm_capabilities(vec![3]);
|
||||||
}
|
}
|
||||||
toplevel.configure(
|
toplevel.configure(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
if toplevel.version() >= 2 {
|
if toplevel.version() >= 2 {
|
||||||
vec![5, 6, 7, 8]
|
vec![1, 5, 6, 7, 8]
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.flat_map(u32::to_ne_bytes)
|
.flat_map(u32::to_ne_bytes)
|
||||||
.collect()
|
.collect()
|
||||||
@@ -971,18 +971,6 @@ impl Backend for XDGBackend {
|
|||||||
core_surface.apply_material(model_part);
|
core_surface.apply_material(model_part);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fn set_toplevel_capabilities(&self, capabilities: Vec<u8>) {
|
|
||||||
// let Ok(xdg_toplevel) = self.toplevel.upgrade() else {return};
|
|
||||||
// let Some(xdg_surface) = self.toplevel_xdg_surface() else {return};
|
|
||||||
|
|
||||||
// if xdg_toplevel.version() < EVT_WM_CAPABILITIES_SINCE {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// xdg_toplevel.wm_capabilities(capabilities);
|
|
||||||
// xdg_surface.configure(SERIAL_COUNTER.inc());
|
|
||||||
// self.flush_client();
|
|
||||||
// }
|
|
||||||
|
|
||||||
fn close_toplevel(&self) {
|
fn close_toplevel(&self) {
|
||||||
let Ok(xdg_toplevel) = self.toplevel.upgrade() else {return};
|
let Ok(xdg_toplevel) = self.toplevel.upgrade() else {return};
|
||||||
xdg_toplevel.close();
|
xdg_toplevel.close();
|
||||||
|
|||||||
@@ -131,6 +131,8 @@ impl XwmHandler for XWaylandHandler {
|
|||||||
fn map_window_notify(&mut self, _xwm: XwmId, window: X11Surface) {
|
fn map_window_notify(&mut self, _xwm: XwmId, window: X11Surface) {
|
||||||
debug!(?window, "X map window notify");
|
debug!(?window, "X map window notify");
|
||||||
|
|
||||||
|
let _ = window.set_maximized(true);
|
||||||
|
|
||||||
let dh = self.wayland_display_handle.clone();
|
let dh = self.wayland_display_handle.clone();
|
||||||
let seat = self.seat.clone().unwrap();
|
let seat = self.seat.clone().unwrap();
|
||||||
CoreSurface::add_to(
|
CoreSurface::add_to(
|
||||||
@@ -171,7 +173,6 @@ impl XwmHandler for XWaylandHandler {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn mapped_override_redirect_window(&mut self, _xwm: XwmId, window: X11Surface) {
|
fn mapped_override_redirect_window(&mut self, _xwm: XwmId, window: X11Surface) {
|
||||||
debug!(?window, "X map override redirect window");
|
debug!(?window, "X map override redirect window");
|
||||||
}
|
}
|
||||||
@@ -179,7 +180,6 @@ impl XwmHandler for XWaylandHandler {
|
|||||||
fn unmapped_window(&mut self, _xwm: XwmId, window: X11Surface) {
|
fn unmapped_window(&mut self, _xwm: XwmId, window: X11Surface) {
|
||||||
debug!(?window, "Unmap X window");
|
debug!(?window, "Unmap X window");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn destroyed_window(&mut self, _xwm: XwmId, window: X11Surface) {
|
fn destroyed_window(&mut self, _xwm: XwmId, window: X11Surface) {
|
||||||
debug!(?window, "Destroy X window");
|
debug!(?window, "Destroy X window");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user