aboutsummaryrefslogtreecommitdiff
path: root/src/layout.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-11-24 09:49:39 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-11-24 09:49:39 +0400
commit25fd6a0e04c5421dbdf5504a7be0ac33bf8bc88c (patch)
tree4766c1d3d67b012ff269797ce76d6794a4d8e4d4 /src/layout.rs
parent34739650914fbfaa1a4144e929e64be4ca54bf5c (diff)
downloadniri-25fd6a0e04c5421dbdf5504a7be0ac33bf8bc88c.tar.gz
niri-25fd6a0e04c5421dbdf5504a7be0ac33bf8bc88c.tar.bz2
niri-25fd6a0e04c5421dbdf5504a7be0ac33bf8bc88c.zip
layout: Switch to workspace on window activation if not transitioning
This should not be possible to trigger at the moment, but with xdg-activation it will be.
Diffstat (limited to 'src/layout.rs')
-rw-r--r--src/layout.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/layout.rs b/src/layout.rs
index af46a6a3..9daac895 100644
--- a/src/layout.rs
+++ b/src/layout.rs
@@ -818,11 +818,16 @@ impl<W: LayoutElement> Layout<W> {
};
for (monitor_idx, mon) in monitors.iter_mut().enumerate() {
- for (_workspace_idx, ws) in mon.workspaces.iter_mut().enumerate() {
+ for (workspace_idx, ws) in mon.workspaces.iter_mut().enumerate() {
if ws.has_window(window) {
*active_monitor_idx = monitor_idx;
- // FIXME: switch to this workspace if not already switching.
ws.activate_window(window);
+
+ // Switch to that workspace if not already during a transition.
+ if mon.workspace_switch.is_none() {
+ mon.switch_workspace(workspace_idx);
+ }
+
break;
}
}