aboutsummaryrefslogtreecommitdiff
path: root/src/layout
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-11-23 11:27:27 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-11-23 15:07:52 +0300
commit1e6b8906e0a04d92778e5a77d97353f768635274 (patch)
treedb604b87781a0a71285c3eba11eb53b00b4ca5c9 /src/layout
parent6c5b92e5c0e0243d54f9637e5f23a3f6641ce55b (diff)
downloadniri-1e6b8906e0a04d92778e5a77d97353f768635274.tar.gz
niri-1e6b8906e0a04d92778e5a77d97353f768635274.tar.bz2
niri-1e6b8906e0a04d92778e5a77d97353f768635274.zip
layout/monitor: Extract add_workspace_bottom()
Diffstat (limited to 'src/layout')
-rw-r--r--src/layout/mod.rs3
-rw-r--r--src/layout/monitor.rs20
2 files changed, 11 insertions, 12 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs
index 33d6411a..e5cfea67 100644
--- a/src/layout/mod.rs
+++ b/src/layout/mod.rs
@@ -2617,8 +2617,7 @@ impl<W: LayoutElement> Layout<W> {
let current = &mut monitors[*active_monitor_idx];
if current.active_workspace_idx == current.workspaces.len() - 1 {
// Insert a new empty workspace.
- let ws = Workspace::new(current.output.clone(), current.options.clone());
- current.workspaces.push(ws);
+ current.add_workspace_bottom();
}
let mut ws = current.workspaces.remove(current.active_workspace_idx);
current.active_workspace_idx = current.active_workspace_idx.saturating_sub(1);
diff --git a/src/layout/monitor.rs b/src/layout/monitor.rs
index d95b1bac..aecad889 100644
--- a/src/layout/monitor.rs
+++ b/src/layout/monitor.rs
@@ -150,6 +150,11 @@ impl<W: LayoutElement> Monitor<W> {
self.windows().any(|win| win.id() == window)
}
+ pub fn add_workspace_bottom(&mut self) {
+ let ws = Workspace::new(self.output.clone(), self.options.clone());
+ self.workspaces.push(ws);
+ }
+
fn activate_workspace(&mut self, idx: usize) {
if self.active_workspace_idx == idx {
return;
@@ -191,8 +196,7 @@ impl<W: LayoutElement> Monitor<W> {
if workspace_idx == self.workspaces.len() - 1 {
// Insert a new empty workspace.
- let ws = Workspace::new(self.output.clone(), self.options.clone());
- self.workspaces.push(ws);
+ self.add_workspace_bottom();
}
if activate {
@@ -233,8 +237,7 @@ impl<W: LayoutElement> Monitor<W> {
if workspace_idx == self.workspaces.len() - 1 {
// Insert a new empty workspace.
- let ws = Workspace::new(self.output.clone(), self.options.clone());
- self.workspaces.push(ws);
+ self.add_workspace_bottom();
}
if activate {
@@ -260,8 +263,7 @@ impl<W: LayoutElement> Monitor<W> {
if workspace_idx == self.workspaces.len() - 1 {
// Insert a new empty workspace.
- let ws = Workspace::new(self.output.clone(), self.options.clone());
- self.workspaces.push(ws);
+ self.add_workspace_bottom();
}
if activate {
@@ -818,8 +820,7 @@ impl<W: LayoutElement> Monitor<W> {
if new_idx == self.workspaces.len() - 1 {
// Insert a new empty workspace.
- let ws = Workspace::new(self.output.clone(), self.options.clone());
- self.workspaces.push(ws);
+ self.add_workspace_bottom();
}
let previous_workspace_id = self.previous_workspace_id;
@@ -840,8 +841,7 @@ impl<W: LayoutElement> Monitor<W> {
if self.active_workspace_idx == self.workspaces.len() - 1 {
// Insert a new empty workspace.
- let ws = Workspace::new(self.output.clone(), self.options.clone());
- self.workspaces.push(ws);
+ self.add_workspace_bottom();
}
let previous_workspace_id = self.previous_workspace_id;