aboutsummaryrefslogtreecommitdiff
path: root/src/layout/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/mod.rs')
-rw-r--r--src/layout/mod.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs
index 317ad0f6..5ade9d01 100644
--- a/src/layout/mod.rs
+++ b/src/layout/mod.rs
@@ -3218,7 +3218,13 @@ impl<W: LayoutElement> Layout<W> {
if mon_idx == new_idx && ws_idx == workspace_idx {
return;
}
- let ws_id = monitors[new_idx].workspaces[workspace_idx].id();
+
+ let mon = &monitors[new_idx];
+ if mon.workspaces.len() <= workspace_idx {
+ return;
+ }
+
+ let ws_id = mon.workspaces[workspace_idx].id();
let mon = &mut monitors[mon_idx];
let activate = activate.map_smart(|| {
@@ -3389,6 +3395,10 @@ impl<W: LayoutElement> Layout<W> {
let current = &mut monitors[current_idx];
+ if current.workspaces.len() <= old_idx {
+ return false;
+ }
+
// Do not do anything if the output is already correct
if current_idx == target_idx {
// Just update the original output since this is an explicit movement action.