Commit Graph

17 Commits

Author SHA1 Message Date
Ty Smith
27225ed564 fix(macos): forward back/forward mouse buttons in capture and emulation (#392)
* fix(macos): forward back/forward mouse buttons in capture and emulation

OtherMouseDown/Up events on macOS carry a button number field that
distinguishes middle (2), back (3), and forward (4) buttons. The
capture backend was unconditionally mapping all OtherMouse events to
BTN_MIDDLE, silently dropping back/forward. The emulation backend had
no match arms for BTN_BACK/BTN_FORWARD, causing them to be dropped
with a warning.

Fix capture by reading MOUSE_EVENT_BUTTON_NUMBER and mapping 3->BTN_BACK,
4->BTN_FORWARD. Fix emulation by adding match arms for BTN_BACK/BTN_FORWARD
and setting MOUSE_EVENT_BUTTON_NUMBER on the emitted CGEvent so macOS
apps receive the correct button identity.

* fix(macos): track button state and double-clicks by evdev code instead of CGMouseButton

Back, forward, and middle buttons all map to CGMouseButton::Center on
macOS, which caused them to share a single pressed-state boolean and
alias in double-click detection. Replace the ButtonState struct with a
HashSet<u32> keyed by evdev button code so each button is tracked
independently.

---------

Co-authored-by: Ferdinand Schober <ferdinandschober20@gmail.com>
2026-02-22 17:45:53 +01:00
Ferdinand Schober
394c018e11 ad fixme for memory leak 2026-02-08 13:14:11 +01:00
Ferdinand Schober
708a40d0da macos: fix memory leak
probably should use an AutoreleasePool as well
2026-02-06 15:29:24 +01:00
Ferdinand Schober
bdafaa07e5 macos: fix scroll capture (#350) 2025-11-03 18:04:09 +01:00
NeoTheFox
3f13714d8a Add rustfmt.toml for explicit styling (#348)
* Propose an explicit .rustfnt.toml
Use 2024 style, 4 spaces for tabs and epand the default width a tad

* Auto-format the existing code with new rules
2025-11-02 11:52:01 +01:00
Ferdinand Schober
3483d242e2 fix inconsistent mouse capture on macos (#346) 2025-10-31 14:43:28 +01:00
Ferdinand Schober
35773dfd07 macos: fix modifier capture (#342) 2025-10-30 20:16:27 +01:00
Ferdinand Schober
eb1dcbddb0 update dependencies (#302)
* update dependencies

* update windows

* clippy: inline format args

* update flake

* update core-graphics

* fix poll after completion error

* fix ashpd?!
2025-10-08 16:10:32 +02:00
Ferdinand Schober
9f10ebcbd2 Macos cleanup event thread (#324) 2025-10-08 02:00:37 +02:00
Ferdinand Schober
e29eb7134c macos: fix a crash when InputCapture is dropped (#323) 2025-10-08 00:22:52 +02:00
Ferdinand Schober
75b790ec2e propagate event tap creation error (#218) 2024-10-25 16:31:15 +02:00
Ferdinand Schober
5b1dc4ccf8 reference count capture (#209)
* reference count capture

Multiple captures can now be created at the same position.
Captures at the same position are reference counted.

* update testcase

will be required by #200 / #164
2024-10-05 21:22:28 +02:00
Johan
9248007986 [WIP] MacOS inputcapture (#131)
* [WIP] MacOS inputcapture

---------

Co-authored-by: Ferdinand Schober <ferdinand.schober@fau.de>
Co-authored-by: Ferdinand Schober <ferdinandschober20@gmail.com>
2024-08-26 12:40:45 +02:00
Ferdinand Schober
19c2c4327f move lan-mouse protocol to separate crate (#178) 2024-08-11 16:51:47 +02:00
Ferdinand Schober
266ad28c6b track pressed keys in input-capture (#170)
move pressed key tracking to input capture
2024-08-09 13:18:23 +02:00
Ferdinand Schober
bea7d6f8a5 Allow input capture & emulation being disabled (#158)
* Input capture and emulation can now be disabled and will prompt the user to enable again.

* Improved error handling to deliver more useful error messages
2024-07-16 20:34:46 +02:00
Ferdinand Schober
4db2d37f32 split into input-{event,capture,emulation} 2024-07-02 22:07:37 +02:00