Skip to content

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

Open
jobsgonnawork wants to merge 1 commit into
hugeBlack:mainfrom
jobsgonnawork:fix/external-pointer-and-alt-regressions
Open

Fix external pointer regressions and Left Alt sent as Win (#88)#91
jobsgonnawork wants to merge 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
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

2 participants