diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-28 10:13:30 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-30 20:12:37 +0300 |
| commit | ad50dd21fea1912b9e21fb66a22fce517dac3aee (patch) | |
| tree | 20d7f1a1d6db2a843a33a551d5895bcc86cf0f38 /src/input | |
| parent | 8b0cb0bb57112bd15bc7ac04e6952d857dadcbca (diff) | |
| download | niri-ad50dd21fea1912b9e21fb66a22fce517dac3aee.tar.gz niri-ad50dd21fea1912b9e21fb66a22fce517dac3aee.tar.bz2 niri-ad50dd21fea1912b9e21fb66a22fce517dac3aee.zip | |
Add move-window-to-floating/tiling actions
Diffstat (limited to 'src/input')
| -rw-r--r-- | src/input/mod.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs index 6e116d9e..c510a958 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -1318,6 +1318,34 @@ impl State { self.niri.queue_redraw_all(); } } + Action::MoveWindowToFloating => { + self.niri.layout.set_window_floating(None, true); + // FIXME: granular + self.niri.queue_redraw_all(); + } + Action::MoveWindowToFloatingById(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.set_window_floating(Some(&window), true); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } + Action::MoveWindowToTiling => { + self.niri.layout.set_window_floating(None, false); + // FIXME: granular + self.niri.queue_redraw_all(); + } + Action::MoveWindowToTilingById(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.set_window_floating(Some(&window), false); + // FIXME: granular + self.niri.queue_redraw_all(); + } + } Action::SwitchFocusBetweenFloatingAndTiling => { self.niri.layout.switch_focus_floating_tiling(); // FIXME: granular |
