Skip to content

Add second screen touchpad for dual-display Android devices#1

Open
InLineR495 wants to merge 1 commit into
masterfrom
feature/second-screen-touchpad
Open

Add second screen touchpad for dual-display Android devices#1
InLineR495 wants to merge 1 commit into
masterfrom
feature/second-screen-touchpad

Conversation

@InLineR495
Copy link
Copy Markdown
Owner

Summary

  • Adds touchpad support on secondary PRESENTATION displays (e.g., AYN Thor's second screen)
  • Touch on the second screen translates to mouse movement in ScummVM via existing pushEvent() types
  • Single tap = left click, two-finger tap = right click, two-finger drag = scroll wheel
  • Toggle button in on-screen overlay, enabled by default when secondary display is detected
  • OLED-friendly: pure black background with minimal touch feedback
  • Zero native C++ changes — uses existing JE_MOUSE_MOVE, JE_LMB_DOWN/UP, JE_RMB_DOWN/UP, JE_MOUSE_WHEEL_UP/DOWN

New files

  • SecondScreenTouchpadView.java — touch-to-mouse translation with acceleration
  • SecondScreenPresentation.java — Android Presentation wrapper
  • SecondScreenManager.java — display detection, lifecycle, toggle
  • SecondScreenHelper.java — integration bridge with ActivityLifecycleCallbacks

Modified files

  • ScummVMActivity.java — field + init call + destroy cleanup
  • scummvm_activity.xml — toggle button in overlay GridLayout

Test plan

  • Touchpad moves cursor across full main screen area
  • Single tap = left click, two-finger tap = right click
  • Two-finger drag = scroll wheel
  • Toggle button shows/hides with on-screen controls
  • Touchpad persists after minimize/restore
  • OLED-safe black background on second screen
  • No interference with main screen touch input

Tested on AYN Thor (Snapdragon 8 Gen 2, Android 14, dual display: 1080×1920 + 1080×1240).

🤖 Generated with Claude Code

Add touchpad support on secondary PRESENTATION displays for dual-screen
Android devices (e.g. AYN Thor). Touch on the second screen controls the
mouse cursor in ScummVM.

Gestures: single finger drag for mouse movement, single tap for left
click, two-finger tap for right click, two-finger drag for scroll wheel.

Uses existing pushEvent() types (JE_MOUSE_MOVE, JE_LMB_DOWN/UP,
JE_RMB_DOWN/UP, JE_MOUSE_WHEEL_UP/DOWN) with no native C++ changes.

Toggle button in on-screen overlay, enabled by default when secondary
display is detected. OLED-friendly black background on touchpad screen.

Tested on AYN Thor (Snapdragon 8 Gen 2, Android 14, dual display
1080x1920 + 1080x1240).

Assisted-by: Claude:claude-opus-4.6
@InLineR495 InLineR495 force-pushed the feature/second-screen-touchpad branch from 2e27ad5 to a99faf0 Compare May 8, 2026 12:16
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.

1 participant