Skip to content

Add pen input settings#37500

Merged
peppy merged 6 commits intoppy:masterfrom
Susko3:add-pen-settings
Apr 28, 2026
Merged

Add pen input settings#37500
peppy merged 6 commits intoppy:masterfrom
Susko3:add-pen-settings

Conversation

@Susko3
Copy link
Copy Markdown
Member

@Susko3 Susko3 commented Apr 23, 2026

Adds simple input settings section for pens that allows disabling the handler and adjusting sensitivity. The section appears in-between Tablet and Touch, and only on SDL3 (desktop and mobile). The pen sensitivity is completely independent from mouse sensitivity.

image

Keep in mind that the "Confine mouse cursor to window" mouse setting also affects pens, feel free to suggest UX improvements. Also, toggling "High precision mouse" might affect pens on certain configurations.

Edit: added image with updated header. Previously, it was "Device: Pen".

@peppy
Copy link
Copy Markdown
Member

peppy commented Apr 24, 2026

Is this the best we can do? There's no toggle in SDL3 to just restore the previous behaviour?

If we're going down this path I recommend we name this section "Tablet (External)" to make it very obvious what is going on.

@Susko3
Copy link
Copy Markdown
Member Author

Susko3 commented Apr 24, 2026

Is this the best we can do?

To me, this is the correct solution, anything else would be a hack. Having separate mouse and pen sensitivity was my solution to this all along, as relative mouse events in SDL3 don't work well with osu!'s needs for absolute input.

There's no toggle in SDL3 to just restore the previous behaviour?

This never worked with native SDL2, we had our custom handler that did external tablet sensitivity. SDL3 implementes something very similar to our custom handler, but exposes it through pen events instead of mouse events. It's just a matter of interface, but the end result is the same.

Theoretically, we could roll our custom handler with SDL3, but it would require disabling the raw mouse input thread – our whole reason for upgrading to SDL3.

@peppy peppy self-requested a review April 27, 2026 08:22
@peppy
Copy link
Copy Markdown
Member

peppy commented Apr 28, 2026

Keep in mind that the "Confine mouse cursor to window" mouse setting also affects pens, feel free to suggest UX improvements. Also, toggling "High precision mouse" might affect pens on certain configurations.

What does this even mean? Double sensitivity application? Where's the "why" behind this? How do we expose this to users?

Never mind I understand now.

@peppy peppy force-pushed the add-pen-settings branch from 9b86d6f to 9ee1656 Compare April 28, 2026 08:53
@pull-request-size pull-request-size Bot added size/L and removed size/M labels Apr 28, 2026
@peppy peppy force-pushed the add-pen-settings branch 2 times, most recently from aa6a9cf to d5b0ab5 Compare April 28, 2026 10:19
@peppy peppy force-pushed the add-pen-settings branch from d5b0ab5 to df3d5c9 Compare April 28, 2026 10:28
@peppy peppy merged commit 9b3dba9 into ppy:master Apr 28, 2026
9 checks passed
Copilot AI added a commit to winnerspiros/osu that referenced this pull request Apr 28, 2026
- Bump ppy.osu.Framework/Android/iOS from 2026.427.4 to 2026.428.2
  (winnerspiros/osu-framework PR #25: merge 4 upstream commits including
   pen sensitivity setting support for SDL3 + winnerspiros Vulkan fixes)
- Update ppy.osu.Game.Resources to 2026.427.0 (from upstream)
- Cherry-pick ppy/osu commit 9b3dba9 (Add pen input settings ppy#37500):
  adds PenSettings.cs, PenSettingsStrings.cs, OsuConfigManager pen
  sensitivity config entry, OsuGameBase pen handler settings wiring

Fork customizations preserved:
- ppy.Veldrid.SPIRV pinned at 1.0.15-gb268bf39ea (16 KB page-aligned build)
- ppy.osu.Framework.NativeLibs ExcludeAssets=all (Android native lib fix)
- All Android/Oboe/safe-mode/crash-diagnostics fork code untouched

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
@TheRealStevie TheRealStevie mentioned this pull request Apr 28, 2026
@Susko3 Susko3 deleted the add-pen-settings branch April 28, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants