aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-02-03 09:45:26 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-02-03 09:45:26 +0400
commit798d9c55dfaae46ab09e9176f5c3dd8fa21f478a (patch)
treeaa9ca995b34a3251b82e70d25a1bec7aa7289845 /src/handlers
parent05613eed1efc724277a08f763e19e218b1d697ff (diff)
downloadniri-798d9c55dfaae46ab09e9176f5c3dd8fa21f478a.tar.gz
niri-798d9c55dfaae46ab09e9176f5c3dd8fa21f478a.tar.bz2
niri-798d9c55dfaae46ab09e9176f5c3dd8fa21f478a.zip
Support fullscreen for new windows
Diffstat (limited to 'src/handlers')
-rw-r--r--src/handlers/xdg_shell.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs
index a8023a69..2a1b1d0b 100644
--- a/src/handlers/xdg_shell.rs
+++ b/src/handlers/xdg_shell.rs
@@ -230,6 +230,13 @@ impl XdgShellHandler for State {
}
self.niri.layout.set_fullscreen(&window, true);
+ } else if let Some(window) = self.niri.unmapped_windows.get(surface.wl_surface()) {
+ if let Some(ws) = self.niri.layout.active_workspace() {
+ window.toplevel().with_pending_state(|state| {
+ state.size = Some(ws.view_size());
+ state.states.set(xdg_toplevel::State::Fullscreen);
+ });
+ }
}
}
@@ -246,6 +253,13 @@ impl XdgShellHandler for State {
{
let window = window.clone();
self.niri.layout.set_fullscreen(&window, false);
+ } else if let Some(window) = self.niri.unmapped_windows.get(surface.wl_surface()) {
+ if let Some(ws) = self.niri.layout.active_workspace() {
+ window.toplevel().with_pending_state(|state| {
+ state.size = Some(ws.new_window_size());
+ state.states.unset(xdg_toplevel::State::Fullscreen);
+ });
+ }
}
}