aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
authorJames Sully <sullyj3@gmail.com>2024-06-09 21:14:51 +1000
committerGitHub <noreply@github.com>2024-06-09 11:14:51 +0000
commita55e385b12f27e3e700ae759d620b401f910288f (patch)
treef60b8f7860bc5a531c83c64a4ef0308935970e1e /src/layout/workspace.rs
parentaf6d84a7f85c3804bcf60d066f26e33070a17d1c (diff)
downloadniri-a55e385b12f27e3e700ae759d620b401f910288f.tar.gz
niri-a55e385b12f27e3e700ae759d620b401f910288f.tar.bz2
niri-a55e385b12f27e3e700ae759d620b401f910288f.zip
Add `focus-column-right-or-first`, `focus-column-left-or-last` (#391)
* add focus-column-right-or-first * add focus-column-left-or-last
Diffstat (limited to 'src/layout/workspace.rs')
-rw-r--r--src/layout/workspace.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index fadbf00c..d18f37e0 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -1536,6 +1536,28 @@ impl<W: LayoutElement> Workspace<W> {
self.activate_column(self.columns.len() - 1);
}
+ pub fn focus_column_right_or_first(&mut self) {
+ if self.columns.is_empty() {
+ return;
+ }
+
+ let column_idx = (self.active_column_idx + 1) % self.columns.len();
+ self.activate_column(column_idx);
+ }
+
+ pub fn focus_column_left_or_last(&mut self) {
+ if self.columns.is_empty() {
+ return;
+ }
+
+ let column_idx = if self.active_column_idx == 0 {
+ self.columns.len() - 1
+ } else {
+ self.active_column_idx - 1
+ };
+ self.activate_column(column_idx);
+ }
+
pub fn focus_down(&mut self) {
if self.columns.is_empty() {
return;