Skip to content

Fix external pointer regressions and Left Alt sent as Win (#88) - #91

Merged
SandiyosDev merged 1 commit into
hugeBlack:mainfrom
jobsgonnawork:fix/external-pointer-and-alt-regressions
Sep 2, 2026
Merged

Fix external pointer regressions and Left Alt sent as Win (#88)#91
SandiyosDev merged 1 commit into
hugeBlack:mainfrom
jobsgonnawork:fix/external-pointer-and-alt-regressions

Conversation

@jobsgonnawork

Copy link
Copy Markdown

Summary

Fixes the three input regressions reported in #88, all affecting external mouse / Magic Keyboard trackpad and hardware-keyboard input.

Root causes & fixes

External mouse/trackpad input arrives on iPadOS twice: as GCMouse events and as .indirectPointer UITouches. The manual touch path in ParsecViewController was also consuming those touches, which caused two of the regressions. The keyboard regression came from an unconditional Alt/Option-to-Win remap.

1. Direct mode: external-mouse click warps cursor to last touch position

TouchOverlayView fed indirect-pointer touches into startCursor(), which in direct mode warped the host cursor to the stale touch location (sendMousePosition) before clicking.

2. Touchpad mode: click-drag broken

The same touches drove moveCursor(), sending absolute positions that fought GCMouse deltas.

Fix 1+2: TouchOverlayView.forward now drops .indirectPointer touches; GCMouse handles external pointers.

3. Left Alt sent as Win

Removed the Alt->Win remap so Alt is sent as Alt; key repeat preserved.

Fixes #88

Route external mouse/trackpad exclusively through GCMouse and stop the
Option/Alt->Win key remap.

- TouchOverlayView now drops .indirectPointer touches. External pointers
  arrive as both GCMouse events and indirect-pointer UITouches; the manual
  touch path was warping the direct-mode cursor to the stale touch location
  and fighting GCMouse deltas during touchpad-mode drags. GCMouse is now the
  sole handler for external pointers.
- pressesBegan/pressesEnded no longer remap a held Alt/Option to LGUI (Win),
  which turned Alt+Tab into Win+Tab (Task View). Alt is sent as Alt. Key
  repeat is preserved.

Fixes hugeBlack#88
@SandiyosDev
SandiyosDev merged commit 1b7965d into hugeBlack:main Sep 2, 2026
3 checks passed
@SandiyosDev

SandiyosDev commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Thank you for the fix, the alt remap is on purpose for mac hosts since ipados eats cmd+tab/space/h, it just should never have been on for windows. I'm putting it behind a setting in a follow up so you don't need to touch this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

External pointer regressions in latest nightly: mouse click warps to last touch position, drag broken, Left Alt sent as Win

3 participants