diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-02-03 09:45:26 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-02-03 09:45:26 +0400 |
| commit | 798d9c55dfaae46ab09e9176f5c3dd8fa21f478a (patch) | |
| tree | aa9ca995b34a3251b82e70d25a1bec7aa7289845 /src/handlers | |
| parent | 05613eed1efc724277a08f763e19e218b1d697ff (diff) | |
| download | niri-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.rs | 14 |
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); + }); + } } } |
