aboutsummaryrefslogtreecommitdiff
path: root/src/layout
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout')
-rw-r--r--src/layout/mod.rs18
-rw-r--r--src/layout/monitor.rs8
-rw-r--r--src/layout/workspace.rs13
3 files changed, 39 insertions, 0 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs
index 02287db6..48d7ed9e 100644
--- a/src/layout/mod.rs
+++ b/src/layout/mod.rs
@@ -774,6 +774,20 @@ impl<W: LayoutElement> Layout<W> {
monitor.move_right();
}
+ pub fn move_column_to_first(&mut self) {
+ let Some(monitor) = self.active_monitor() else {
+ return;
+ };
+ monitor.move_column_to_first();
+ }
+
+ pub fn move_column_to_last(&mut self) {
+ let Some(monitor) = self.active_monitor() else {
+ return;
+ };
+ monitor.move_column_to_last();
+ }
+
pub fn move_down(&mut self) {
let Some(monitor) = self.active_monitor() else {
return;
@@ -1546,6 +1560,8 @@ mod tests {
FocusWindowOrWorkspaceUp,
MoveColumnLeft,
MoveColumnRight,
+ MoveColumnToFirst,
+ MoveColumnToLast,
MoveWindowDown,
MoveWindowUp,
MoveWindowDownOrToWorkspaceDown,
@@ -1659,6 +1675,8 @@ mod tests {
Op::FocusWindowOrWorkspaceUp => layout.focus_window_or_workspace_up(),
Op::MoveColumnLeft => layout.move_left(),
Op::MoveColumnRight => layout.move_right(),
+ Op::MoveColumnToFirst => layout.move_column_to_first(),
+ Op::MoveColumnToLast => layout.move_column_to_last(),
Op::MoveWindowDown => layout.move_down(),
Op::MoveWindowUp => layout.move_up(),
Op::MoveWindowDownOrToWorkspaceDown => layout.move_down_or_to_workspace_down(),
diff --git a/src/layout/monitor.rs b/src/layout/monitor.rs
index 28d7921e..e87907cc 100644
--- a/src/layout/monitor.rs
+++ b/src/layout/monitor.rs
@@ -152,6 +152,14 @@ impl<W: LayoutElement> Monitor<W> {
self.active_workspace().move_right();
}
+ pub fn move_column_to_first(&mut self) {
+ self.active_workspace().move_column_to_first();
+ }
+
+ pub fn move_column_to_last(&mut self) {
+ self.active_workspace().move_column_to_last();
+ }
+
pub fn move_down(&mut self) {
self.active_workspace().move_down();
}
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index 7fced686..799552b0 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -674,6 +674,19 @@ impl<W: LayoutElement> Workspace<W> {
self.move_column_to(new_idx);
}
+ pub fn move_column_to_first(&mut self) {
+ self.move_column_to(0);
+ }
+
+ pub fn move_column_to_last(&mut self) {
+ if self.columns.is_empty() {
+ return;
+ }
+
+ let new_idx = self.columns.len() - 1;
+ self.move_column_to(new_idx);
+ }
+
pub fn move_down(&mut self) {
if self.columns.is_empty() {
return;