From 56174b2c347b1de8f278fe1a2b0401ae5bfe528d Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 29 Dec 2023 08:01:02 +0400 Subject: Add move-column-to-{first,last} --- src/layout/mod.rs | 18 ++++++++++++++++++ src/layout/monitor.rs | 8 ++++++++ src/layout/workspace.rs | 13 +++++++++++++ 3 files changed, 39 insertions(+) (limited to 'src/layout') 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 Layout { 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 Monitor { 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 Workspace { 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; -- cgit