aboutsummaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-11-29 21:11:02 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-12-30 20:12:37 +0300
commitc5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b (patch)
treef4bf7c768d21cd72d81da6ca0d1b084631e71276 /src/input
parent951f63b6fd48b47ca60e8ed6aa91b4a7b47534f9 (diff)
downloadniri-c5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b.tar.gz
niri-c5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b.tar.bz2
niri-c5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b.zip
Initial WIP floating window implementation
Diffstat (limited to 'src/input')
-rw-r--r--src/input/mod.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs
index 13ed6d7f..4e264b06 100644
--- a/src/input/mod.rs
+++ b/src/input/mod.rs
@@ -1294,6 +1294,25 @@ impl State {
}
}
}
+ Action::ToggleWindowFloating => {
+ self.niri.layout.toggle_window_floating(None);
+ // FIXME: granular
+ self.niri.queue_redraw_all();
+ }
+ Action::ToggleWindowFloatingById(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_window_floating(Some(&window));
+ // FIXME: granular
+ self.niri.queue_redraw_all();
+ }
+ }
+ Action::SwitchFocusBetweenFloatingAndTiling => {
+ self.niri.layout.switch_focus_floating_tiling();
+ // FIXME: granular
+ self.niri.queue_redraw_all();
+ }
}
}