From 186c0b4718bea16cc5581b6ec915c909170b3265 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Fri, 3 Jul 2026 16:15:22 +0300 Subject: [PATCH 1/2] feat(macos): add middle click --- src/backend/macos.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/backend/macos.rs b/src/backend/macos.rs index 723c76c..54b30da 100644 --- a/src/backend/macos.rs +++ b/src/backend/macos.rs @@ -76,12 +76,15 @@ const K_CGEVENT_RIGHT_MOUSE_DOWN: u32 = 3; const K_CGEVENT_RIGHT_MOUSE_UP: u32 = 4; const K_CGEVENT_MOUSE_MOVED: u32 = 5; const K_CGEVENT_LEFT_MOUSE_DRAGGED: u32 = 6; +const K_CGEVENT_OTHER_MOUSE_DOWN: u32 = 25; +const K_CGEVENT_OTHER_MOUSE_UP: u32 = 26; const K_CGEVENT_KEY_DOWN: u32 = 10; const K_CGEVENT_TAP_DISABLED_BY_TIMEOUT: u32 = 0xFFFFFFFE; const K_CGEVENT_TAP_DISABLED_BY_USER_INPUT: u32 = 0xFFFFFFFF; const K_CGMOUSE_BUTTON_LEFT: u32 = 0; const K_CGMOUSE_BUTTON_RIGHT: u32 = 1; +const K_CGMOUSE_BUTTON_CENTER: u32 = 2; const K_CGHIDEVENT_TAP: u32 = 0; const K_CGANNOTATED_SESSION_EVENT_TAP: u32 = 2; @@ -687,7 +690,16 @@ impl Backend for MacosBackend { } fn middle_click(&mut self, x: u32, y: u32) -> Result<()> { - unimplemented!(); + self.hide_overlay(); + self.focus_target_app(); + self.click_at( + K_CGEVENT_OTHER_MOUSE_DOWN, + K_CGEVENT_OTHER_MOUSE_UP, + K_CGMOUSE_BUTTON_CENTER, + x, + y, + 1, + ); Ok(()) } From 7046e01f5b48480c8e9832560d1c5f8497a9d818 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Fri, 3 Jul 2026 16:19:06 +0300 Subject: [PATCH 2/2] docs(readme): remove note about middle click on macos --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8dc55c..1bc5b5a 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Released binaries are not codesigned with a Developer ID, so after every upgrade | Enter | Double click | | `m` | Triple click | | Delete | Right click | -| Insert | Middle click (macOS is not supported) | +| Insert | Middle click | | Escape | Close overlay | | Backspace | Undo last step | | Arrow keys | Scroll (up/down/left/right) |