Keep fullscreen dialogs visible and preserve window focus

This commit is contained in:
Samuel Onoja committed 2026-09-29 16:14:19 +01:00
1 parent eda453dabd
commit b3de13e27e
3 files changed
+142 -22

No files matched your search

+21 -5
View File
@@ -1,8 +1,15 @@
use ferese_layout::WindowId;
use std::collections::HashMap;
pub(crate) fn layer_priority(floating: bool, zooming: bool, fullscreen: bool) -> u8 {
if fullscreen {
pub(crate) fn layer_priority(
floating: bool,
zooming: bool,
fullscreen: bool,
above_fullscreen: bool,
) -> u8 {
if above_fullscreen {
4
} else if fullscreen {
3
} else if floating {
2
@@ -90,9 +97,18 @@ mod tests {
#[test]
fn floating_windows_stay_above_tiled_and_maximized_windows() {
assert!(layer_priority(true, false, false) > layer_priority(false, true, false));
assert!(layer_priority(false, true, false) > layer_priority(false, false, false));
assert!(layer_priority(false, false, true) > layer_priority(true, false, false));
assert!(
layer_priority(true, false, false, false) > layer_priority(false, true, false, false)
);
assert!(
layer_priority(false, true, false, false) > layer_priority(false, false, false, false)
);
assert!(
layer_priority(false, false, true, false) > layer_priority(true, false, false, false)
);
assert!(
layer_priority(true, false, false, true) > layer_priority(false, false, true, false)
);
}
#[test]