Henrik Rydgård and Claude Opus 5
ea1ad8ffed
UI: Tab and Shift+Tab move focus through the view hierarchy
...
Unlike the directional moves, this doesn't look at where anything ended up on
screen - it walks the hierarchy in the order views were added, flattening nested
groups in place. That's what makes it predictable in the layouts where "what's
to the right of this" has no good answer.
A view is a stop if it's focusable and enabled, the same test the directional
moves apply, so the two agree on what's reachable. Hidden subtrees are skipped
whole, which is what keeps a TabHolder's inactive tabs - V_GONE rather than
removed - out of the order without any special casing. Containers are gated on
visibility only, not enabled, matching Key/Touch/Axis: disabling a container
doesn't stop its children being interactive anywhere else either.
Ctrl+Tab stays with ChoiceStrip, which uses it to switch tabs.
focusMoves now holds FocusMove rather than raw keycodes, so the direction is
decided in one place while the modifiers are still around, and a held key
repeats in the direction it was originally pressed with - the synthesized repeat
has no modifiers of its own. That also retires the keycode switch in
UpdateViewHierarchy and IsScrollKey, which had no other callers.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01SfY7iFJEjmRXf1XGrTs4MF
2026-08-27 20:52:20 +02:00
Henrik Rydgård
02e9deb232
Fix some input behavior that got lost in the previous commits.
2026-06-24 21:48:44 +02:00
Henrik Rydgård
3a599c4714
Fix audio focus issue by tracking the cause of lost focus.
...
Fixes #21643
2026-05-06 00:06:32 +02:00
Henrik Rydgård
eb476d522e
Rename FocusDirection to FocusMove, make into enum class
2026-04-14 18:17:54 -06:00
Henrik Rydgård
c3a78724c7
Add an on-screen keyboard in the popup inputbox
2026-02-26 17:17:42 +01:00
Henrik Rydgård
8eeb64c9dc
Fix a bug in gridlayout column count computation, fix layout problem on savestate popups.
2026-02-25 14:28:57 +01:00
Henrik Rydgård
990cba8e6c
Fix problem with background image when rotating some dialogs
2026-02-09 14:35:32 +01:00
Henrik Rydgård
aa17599f66
Make things more consistent in the no-present case
2026-02-08 10:13:34 +01:00
Henrik Rydgård
d6d2c24e24
Fix the toggle touch controls input (properly this time)
2026-02-05 09:44:42 +01:00
Henrik Rydgård
481d0fd18c
Switch TouchInputFlags to enum class, fix some minor UI issues
...
Scroll views now only wheel-scroll if the mouse is hovering over them.
2025-12-19 11:38:56 +01:00
Henrik Rydgård
9de8e75709
AnchorLayout: Allow centering separately for horizontal and vertical
2025-11-10 12:10:08 +01:00
Henrik Rydgård
bf5e524243
Add multi-font support to the final text-rendering backend (SDL_ttf)
2025-11-09 08:52:21 +01:00
Henrik Rydgård
980ddb152b
UI fixes, add SimpleTextView (easier to reason about)
2025-11-09 08:52:20 +01:00
Henrik Rydgård
b45d07d6cb
Break out TabHolder from Common/UI/ViewGroup.cpp. A few new atlas images
2025-10-23 11:19:20 +02:00
Henrik Rydgård
58456ae950
Remove the UI::EventReturn return values. Makes editing the UI nicer.
2025-09-15 11:09:00 -06:00
Henrik Rydgård
e78341b822
Hide theme behind an accessor (so we can expose it only as const)
2025-09-15 09:31:18 -06:00
Henrik Rydgård
91bf4d5b5c
Correct some log categories, add UI category, some warning fixes
2025-04-09 13:45:21 +02:00
Henrik Rydgård
4df25788fd
UI: Fix focus issue, thanks NABN00B.
...
Fixes #20217
2025-04-07 13:39:47 +02:00
Henrik Rydgård
116f8cf3af
Implement resetting from a popup menu on the pause menu.
2025-03-28 14:31:01 +01:00
Henrik Rydgård
ad260fa6a8
Implement lazy loading of tabs
2025-03-23 22:48:57 +01:00
Henrik Rydgård
4b977b43c2
TabHolder: Contents are always ViewGroups, let's enforce that.
2025-03-23 22:48:57 +01:00
Henrik Rydgård
0ba92081ed
Add banner support to tab holders
2025-03-23 22:48:51 +01:00
Henrik Rydgård
8674488859
Android: Handle mouse events separately from touch events
...
Use the new modern events like HOVER.
2025-03-05 23:26:30 +01:00
Henrik Rydgård
863bef5f64
Give all views a bool popupStyle_, so they know the context.
2025-02-17 11:25:23 -06:00
Herman Semenov
45429bcd85
[Common/Data/File/Input/Net/Serialize/System/UI] Using for based loop C++17 and replaced on structured binding map C++17
2024-09-17 17:42:08 +02:00
Henrik Rydgård
e01ca5b057
Logging API change (refactor) ( #19324 )
...
* Rename LogType to Log
* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.
* Mac/ARM64 buildfix
* Do the same with the hle result log macros
* Rename the log names to mixed case while at it.
* iOS buildfix
* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård
3bb74ea9ad
Rework the JitCompare window to hold a list of blocks, and allow some filtering and browsing
2024-06-05 18:16:33 +02:00
Henrik Rydgård
455e28da6c
Rename Point to Point2D to avoid a cocoa name clash
2024-05-29 18:52:39 +02:00
Henrik Rydgård
1129000d8f
Add some asserts, small cleanup
2024-05-21 11:08:09 +02:00
Henrik Rydgård
c5791764d8
Make the i18n T function use std::string_view
...
Buildfixes, crashfixes
One more
Android buildfix
Buildfix Qt
2024-02-12 18:44:39 +01:00
Henrik Rydgård
c29f81da36
Fix issue with the collapsible sections in control mapping collapsing on every change.
2024-01-29 17:57:01 +01:00
Henrik Rydgård
7a318b46e8
Draw the line between the tabs and contents as a spacer instead of custom code.
2024-01-19 14:56:29 +01:00
Henrik Rydgård
0e03b66a95
Make vertical tabs scrollable
2024-01-19 14:56:29 +01:00
Henrik Rydgård
a094637ab1
Remove left-behind debug code
2023-12-28 10:46:41 +01:00
Henrik Rydgård
9cb3d03098
Add categories for control bindings
2023-12-20 16:20:26 +01:00
Henrik Rydgård
6e369e5188
Add play/pause button to the bottom right of the pause screen
2023-12-11 13:56:16 +01:00
Henrik Rydgård
5146a2a967
Remove modifyLock_ from ViewGroup
2023-11-11 11:25:41 +01:00
Henrik Rydgård
e0c0cb9a6d
Change loops to the shorter form.
2023-11-11 10:55:45 +01:00
Henrik Rydgård
01191ff23a
Extract ApplyAnchorLayoutParams from the anchor viewgroup
2023-08-01 00:28:54 +02:00
Henrik Rydgård
aa46d3aae3
UI: CollapsibleHeader no longer shows the open/close icon if there are no items
2023-07-23 11:11:44 +02:00
Henrik Rydgård
7eb1bfe1aa
Spacing default 0.0 in collapsible sections, set spacing for achievements a little higher
2023-07-16 18:23:43 +02:00
Henrik Rydgård
f8b7346b8d
Make the achievement lists collapsible on the main achievements screen
2023-07-16 18:13:36 +02:00
Henrik Rydgård
f27850ec1d
Minor cleanup in MoveFocus, set tags on screen roots for debugging
2023-07-06 16:34:54 +02:00
Henrik Rydgård
cbd012f522
Cleanups around focus moves
2023-07-06 16:13:25 +02:00
Unknown W. Brackets
ce0324b611
UI: Correct grid view V_GONE handling.
2023-04-29 11:44:55 -07:00
Henrik Rydgård
ee6234ecb6
I18N: Switch to getting categories by index instead of by string lookup
...
Also gets rid of the shared_ptr usage, and generally makes things nicer.
Needed for later config refactorings, good to get in early.
2023-04-07 10:35:01 +02:00
Henrik Rydgård
c27689910e
Break out ScrollView from ViewGroup.h, and PopupScreens from UIScreen.h
2023-01-11 10:56:31 +01:00
Henrik Rydgård
30c591e813
Fix smooth touchpad scrolling on Windows
...
Forgot that I had half-implemented it but not finished it up..
2023-01-01 22:23:14 +01:00
Henrik Rydgård
630b7830fa
Improve background drag behavior on display layout screen
...
If you moved into and mouse-up-ed over one of the menus while dragging
the background, it stopped registering movement and "up events" which
felt really awkward.
This is not super pretty, better would be a win32-SetCapture-like
mechanism but works okay.
2022-12-13 00:27:22 +01:00
Unknown W. Brackets
9cfcbc46e6
Global: Cleanup initialization/pointer checks.
...
Cleaning up a lot of cases of uninitialized data, unchecked return values
for failures, and similar.
2022-12-10 21:13:36 -08:00