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
5d5f4bbe6f
fix: build failure in input-capture standalone
2026-02-08 14:19:47 +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
37a4e236b8
fix clippy warnings from rust 1.87 ( #301 )
2025-06-12 17:52:23 +02:00
Leon Linhart
b8063a8138
Capture horizontal scroll on Windows ( #283 )
2025-04-02 02:39:49 +02:00
Ferdinand Schober
615c75817a
fix clippy lint
2025-02-27 16:57:53 +01:00
Ferdinand Schober
21c24f7fa1
layer-shell: handle added/removed globals
...
closes #253
2025-02-13 22:10:12 +01:00
Ferdinand Schober
2e2046dc36
less unsafe code
2025-01-24 14:52:04 +01:00
Ferdinand Schober
346ae79fa6
improve windows code
2025-01-24 14:52:04 +01:00
Ferdinand Schober
a962e43724
address clippy lints
2025-01-24 14:52:04 +01:00
AdamJedl
afe5f0b8db
fix windows input capture not releasing keys ( #241 )
2024-12-03 11:45:41 +01:00
Ferdinand Schober
4703a4c947
chore: Release
2024-11-07 12:49:59 +01:00
Ferdinand Schober
a870a9e3a9
split features for emulation and capture backends
2024-11-07 12:43:42 +01:00
Ferdinand Schober
66456f18f1
update core-graphics / foundation ( #227 )
2024-11-07 01:15:35 +01:00
Ferdinand Schober
1d25dfbe50
upgrade ashpd + reis ( #226 )
2024-11-07 00:38:26 +01:00
Ferdinand Schober
9d28fe6c7b
bump dependencies
2024-11-06 23:53:42 +01:00
Ferdinand Schober
71f7e2e5e0
fix left over capture barrier
2024-11-05 14:32:39 +01:00
Ferdinand Schober
e7a18b9696
recreate wl_{pointer,keyboard} on capability event ( #222 )
...
this should fix #88
fixes #123
2024-11-04 22:45:57 +01:00
Ferdinand Schober
75b790ec2e
propagate event tap creation error ( #218 )
2024-10-25 16:31:15 +02:00
Ferdinand Schober
555fbfeb79
formatting
2024-10-05 21:48:49 +02:00
Ferdinand Schober
6191216873
windows: fix panic when recreating input-capture
...
RegisterWindowClassW fails when called again
2024-10-05 21:47:12 +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
Ferdinand Schober
12bc0d86ca
layer-shell: drop hard-dep on shortcut-inhibit ( #188 )
...
soften dependencies off layer-shell backend to make
https://wayland.app/protocols/keyboard-shortcuts-inhibit-unstable-v1
optional.
This allows partial functionality on compositors that don't support
the protocol, e.g. labwc.
2024-09-03 23:24:14 +02:00
Ferdinand Schober
8926d8f803
produce events in dummy capture-backend ( #184 )
2024-09-02 17:59:17 +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
68361b25d1
fix crash due to dropped fd ( #167 )
2024-08-05 14:16:45 +02:00
Ferdinand Schober
281cb406dd
chore: Release
2024-07-30 11:06:04 +02:00
Ferdinand Schober
06ac390dbf
chore: Release
2024-07-30 11:05:03 +02:00
Ferdinand Schober
dcc9250b6d
fix repository url
2024-07-30 11:04:21 +02:00
Ferdinand Schober
376ae50b45
chore: Release
2024-07-30 11:03:08 +02:00
Ferdinand Schober
127c3366bf
derive barrier_id from cursor position ( #162 )
...
this should fix #140
2024-07-19 15:23:04 +02:00
Ferdinand Schober
00e1ded35d
fix windows build
2024-07-19 15:06:13 +02:00
Ferdinand Schober
65fb228db5
upgrade dependencies
2024-07-19 12:58:52 +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
6a4dd740c3
code cleanup + purge anyhow in library code ( #157 )
2024-07-10 00:33:49 +02:00
Ferdinand Schober
9abec63313
update dependencies
2024-07-03 11:11:50 +02:00
Ferdinand Schober
35e626976e
add explicit version
2024-07-02 22:39:20 +02:00
Ferdinand Schober
90e83cee87
purge dependencies
2024-07-02 22:07:37 +02:00
Ferdinand Schober
4db2d37f32
split into input-{event,capture,emulation}
2024-07-02 22:07:37 +02:00