diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-11-24 09:49:39 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-11-24 09:49:39 +0400 |
| commit | 25fd6a0e04c5421dbdf5504a7be0ac33bf8bc88c (patch) | |
| tree | 4766c1d3d67b012ff269797ce76d6794a4d8e4d4 /src/layout.rs | |
| parent | 34739650914fbfaa1a4144e929e64be4ca54bf5c (diff) | |
| download | niri-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.rs | 9 |
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; } } |
