Fix external pointer regressions and Left Alt sent as Win (#88) - #91
Open
jobsgonnawork wants to merge 1 commit into
Open
Fix external pointer regressions and Left Alt sent as Win (#88)#91jobsgonnawork wants to merge 1 commit into
jobsgonnawork wants to merge 1 commit into
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
GCMouseevents and as.indirectPointerUITouches. The manual touch path inParsecViewControllerwas 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
TouchOverlayViewfed indirect-pointer touches intostartCursor(), 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 foughtGCMousedeltas.Fix 1+2:
TouchOverlayView.forwardnow drops.indirectPointertouches;GCMousehandles external pointers.3. Left Alt sent as Win
Removed the Alt->Win remap so Alt is sent as Alt; key repeat preserved.
Fixes #88