Skip to content

menu: Use focus to determine OSK/textbox behavior#19221

Open
Ryunam wants to merge 1 commit into
libretro:masterfrom
Ryunam:textbox-focus
Open

menu: Use focus to determine OSK/textbox behavior#19221
Ryunam wants to merge 1 commit into
libretro:masterfrom
Ryunam:textbox-focus

Conversation

@Ryunam

@Ryunam Ryunam commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Description

Following the concerns raised in #19213, I have reworked the OSK/textbox behavior to retain compatibility with controller keyboards (such as the IPAC devices mentioned in that PR) while still preserving the improvements to text typing with physical keyboards.

This PR adds a new focus switching mechanism:

  • When focus is on the OSK (which is always by default when selecting "Rename" for any playlist entry), behavior is restored to its "legacy" state: keyboard arrows move the cursor over OSK keys/buttons; both Left-CTRL and Right-CTRL act as confirmation/press. The CTRL keys respond to whether the user chose to swap the Confirm and Cancel RetroPad buttons, just like it was before.
  • When focus is on the textbox, instead, the "new" behavior is applied: keyboard arrows move the caret over the typed text, while holding CTRL allows to move between space-delimited words.

Two ways are provided for switching the focus between OSK and textbox:

  • Pressing the TAB keyboard key.
  • If using a mouse, clicking with the pointer over the OSK and/or textbox areas will switch focus to one of the two, respectively.

A few pictures of how the focus looks with the different menu drivers.

Ozone:

Focus on OSK (default)
image

Focus on textbox
image

MaterialUI / GLUI

Focus on OSK (default)
image

Focus on textbox
image

XMB

Focus on OSK (default)
image

Focus on textbox
image

RGUI

Focus on OSK (default)
image

Focus on textbox
image


Reviewers

@sonninnos

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