Release layout slots for unbuffered XDG windows

This commit is contained in:
Samuel Onoja committed 2026-09-29 11:52:17 +01:00
1 parent 67192c0c04
commit 2eb5fe7b73
4 files changed
+268 -4

No files matched your search

+9 -3
View File
@@ -77,10 +77,16 @@ impl CompositorHandler for Ferese {
};
if let Some(window) = window {
if surface == &root {
xdg_shell::apply_initial_window_rules(self, &window);
}
window.on_commit();
if surface == &root {
if crate::state::window_has_buffer(&window) {
xdg_shell::apply_initial_window_rules(self, &window);
} else if self.window_ids.contains_key(&window) {
self.remove_tiled_window(&window);
self.space.map_element(window.clone(), (0, 0), false);
self.restore_keyboard_focus();
}
}
self.record_client_commit(&window);
}
}
+1 -1
View File
@@ -2876,7 +2876,7 @@ fn client_size(window: &Window) -> Option<ClientSize> {
})
}
fn window_has_buffer(window: &Window) -> bool {
pub(crate) fn window_has_buffer(window: &Window) -> bool {
window.toplevel().is_some_and(|toplevel| {
smithay::backend::renderer::utils::with_renderer_surface_state(
toplevel.wl_surface(),