summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pointer_btn.rs2
-rw-r--r--src/wm_info_provider/ext_workspace_unstable.rs17
2 files changed, 15 insertions, 4 deletions
diff --git a/src/pointer_btn.rs b/src/pointer_btn.rs
index 829fc9c..e5e0722 100644
--- a/src/pointer_btn.rs
+++ b/src/pointer_btn.rs
@@ -10,7 +10,7 @@ const BTN_FORWARD: u32 = 0x115;
const BTN_BACK: u32 = 0x116;
// const BTN_TASK: u32 = 0x117;
-#[derive(Debug, Clone, Copy)]
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PointerBtn {
Left,
Middle,
diff --git a/src/wm_info_provider/ext_workspace_unstable.rs b/src/wm_info_provider/ext_workspace_unstable.rs
index 68238d0..dbf6bf7 100644
--- a/src/wm_info_provider/ext_workspace_unstable.rs
+++ b/src/wm_info_provider/ext_workspace_unstable.rs
@@ -57,12 +57,23 @@ impl ExtWorkspaceUnstable {
pub fn click_on_tag(
&mut self,
- _: &mut Connection<State>,
+ conn: &mut Connection<State>,
_: WlOutput,
_: WlSeat,
- _: &str,
- _: PointerBtn,
+ tag: &str,
+ btn: PointerBtn,
) {
+ if btn != PointerBtn::Left {
+ return;
+ }
+
+ let Some(ws) = self
+ .groups
+ .iter()
+ .find_map(|g| g.workspaces.iter().find(|w| w.name.as_deref() == Some(tag)))
+ else { return };
+
+ ws.workspace_handle.activate(conn);
}
}