From 39f52b75856936db01325aa1c7f15fe8f379485d Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 17 Mar 2025 14:56:29 +0300 Subject: Implement toggle-windowed-fullscreen Windowed, or fake, or detached, fullscreen, is when a window thinks that it's fullscreen, but the compositor treats it as a normal window. --- src/input/mod.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/input/mod.rs') diff --git a/src/input/mod.rs b/src/input/mod.rs index 08bebe40..c9677ba2 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -690,6 +690,23 @@ impl State { self.niri.queue_redraw_all(); } } + Action::ToggleWindowedFullscreen => { + let focus = self.niri.layout.focus().map(|m| m.window.clone()); + if let Some(window) = focus { + self.niri.layout.toggle_windowed_fullscreen(&window); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } + Action::ToggleWindowedFullscreenById(id) => { + let window = self.niri.layout.windows().find(|(_, m)| m.id().get() == id); + let window = window.map(|(_, m)| m.window.clone()); + if let Some(window) = window { + self.niri.layout.toggle_windowed_fullscreen(&window); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } Action::FocusWindow(id) => { let window = self.niri.layout.windows().find(|(_, m)| m.id().get() == id); let window = window.map(|(_, m)| m.window.clone()); -- cgit