Release layout slots for unbuffered XDG windows
This commit is contained in:
1 parent
67192c0c04
commit
2eb5fe7b73
4 files changed
+268
-4
No files matched your search
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in new issue
Block a user