Skip to content

Fix iPad pointer, trackpad, zoom, and PiP regressions - #93

Draft
alantangok wants to merge 10 commits into
hugeBlack:mainfrom
alantangok:fix/ipad-pointer-scroll
Draft

Fix iPad pointer, trackpad, zoom, and PiP regressions#93
alantangok wants to merge 10 commits into
hugeBlack:mainfrom
alantangok:fix/ipad-pointer-scroll

Conversation

@alantangok

@alantangok alantangok commented Aug 26, 2026

Copy link
Copy Markdown

Summary

  • send Magic Keyboard pointer movement as absolute hover positions only while the OpenParsec window is active
  • suppress duplicate relative GCMouse movement on hover-capable iPadOS while keeping GCMouse scroll
  • restore pointer hover and pointer lock when a fullscreen scene becomes active again
  • prefer GCMouse scroll, preserve fractional deltas, add release momentum, and respect Natural Scrolling
  • route indirect pointer button edges directly so rapid double clicks and click-drag reach the host without GCMouse duplication\n- ignore duplicate indirect-pointer UITouch events in the manual touch overlay
  • add two-finger pinch zoom and keep viewport edge constraints limited to active zoom above the original scale
  • recover failed PiP display layers and display live sample buffers immediately

Why

On iPadOS, GCMouse movement can continue while another app is foreground even when UIKit focus state still reports active. UIHoverGestureRecognizer accurately represented foreground pointer interaction in device testing. The input paths also needed de-duplication and fractional scroll handling for smooth Magic Keyboard trackpad behavior. Trackpad clicks now use UIKit indirect pointer down/up edges so double clicks retain both complete click sequences.

Zoom viewport constraints must only apply while Two-Finger Pinch Zoom is enabled and the scale is materially above 1x. PiP sample buffers need immediate presentation and display-layer recovery so the host stream does not remain black after a rendering failure.

Verification

  • pointer, scroll, and zoom viewport regression checks pass
  • Release iphoneos build with CODE_SIGNING_ALLOWED=NO succeeds
  • signed IPA passes strict deep codesign verification
  • IPA archive contains no AppleDouble metadata
  • GitHub release checksum matches the local IPA

Draft status

Pointer focus and the original GCMouse-priority direction handling were previously confirmed on device. The latest fullscreen resume, smooth momentum, zoom viewport policy, PiP rendering recovery, and trackpad double-click delivery still require final iPad validation.

This overlaps with #91 around duplicate indirect-pointer UITouch filtering, but intentionally differs in movement routing: device diagnostics showed GCMouse movement arriving while OpenParsec was not foreground, so this keeps hover as the foreground-authoritative movement path.

@alantangok alantangok changed the title Fix iPad pointer focus, fullscreen resume, and trackpad scroll Fix iPad pointer, trackpad, zoom, and PiP regressions Aug 30, 2026
@alantangok

Copy link
Copy Markdown
Author

Hi @SandiyosDev @hugeBlack — I’ve opened #93 and would love to contribute regularly to OpenParsec. Is there a preferred roadmap or chat, and are there specific issues you’d like help with? I’m happy to follow your review and build workflow.

@SandiyosDev

Copy link
Copy Markdown
Collaborator

Hi @SandiyosDev @hugeBlack — I’ve opened #93 and would love to contribute regularly to OpenParsec. Is there a preferred roadmap or chat, and are there specific issues you’d like help with? I’m happy to follow your review and build workflow.

Hey, @alantangok, I don't have any specific preferences other than avoiding slop and massive PRs.
Feel free to have agents autocomplete your code, but double and triple-check your commits.

If you maintain consistent contributions, maybe you can eventually merge your own PRs, I'll be reviewing yours for now.

@alantangok

Copy link
Copy Markdown
Author

Thanks, that sounds good. I’ll keep my PRs small and focused, review every commit carefully, and include clear testing evidence. I appreciate you reviewing #93, and I’m happy to address any feedback.

@SandiyosDev

Copy link
Copy Markdown
Collaborator

i'm reading this PR while you're working on it... this PR needs splitting before I can review it, it's five separate things, the pointer/trackpad fix, scroll momentum + natural scrolling, the pinch zoom viewport, PiP layer recovery, and the menu edge swipe... do one PR each, and drop .checkpoint and the scripts folder, and let xcode generate the pbxproj ids

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.

2 participants