feat: tile managed windows with layout tree

This commit is contained in:
Samuel Onoja committed 2026-09-24 06:19:06 +01:00
1 parent 03f6b9b8e1
commit 58d91363d6
7 files changed
+116 -3

No files matched your search

+1
View File
@@ -47,6 +47,7 @@ impl XdgActivationHandler for Ferese {
return;
};
self.focused_window = self.window_ids.get(&window).copied();
self.space.raise_element(&window, true);
let keyboard = self.seat.get_keyboard().expect("seat has a keyboard");
keyboard.set_focus(self, Some(surface), SERIAL_COUNTER.next_serial());
+18 -2
View File
@@ -34,8 +34,24 @@ impl XdgShellHandler for Ferese {
}
fn new_toplevel(&mut self, surface: ToplevelSurface) {
self.space
.map_element(Window::new_wayland_window(surface), (0, 0), true);
self.add_tiled_window(Window::new_wayland_window(surface));
}
fn toplevel_destroyed(&mut self, surface: ToplevelSurface) {
let Some(window) = self
.space
.elements()
.find(|window| {
window
.toplevel()
.is_some_and(|toplevel| toplevel.wl_surface() == surface.wl_surface())
})
.cloned()
else {
return;
};
self.remove_tiled_window(&window);
}
fn new_popup(&mut self, surface: PopupSurface, _positioner: PositionerState) {