aboutsummaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-12-28 10:13:30 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-12-30 20:12:37 +0300
commitad50dd21fea1912b9e21fb66a22fce517dac3aee (patch)
tree20d7f1a1d6db2a843a33a551d5895bcc86cf0f38 /src/input
parent8b0cb0bb57112bd15bc7ac04e6952d857dadcbca (diff)
downloadniri-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.rs28
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