Henrik Rydgård
3d619dad0e
Merge pull request #22156 from hrydgard/tab-focus-recent
...
Fix a tab focus problem
2026-08-28 22:41:33 +02:00
Henrik Rydgård
a61e8135dd
Fix a tab focus problem
2026-08-28 15:29:14 +02:00
Henrik Rydgård
fad7b93776
Merge pull request #22151 from hrydgard/ui-tab-navigation
...
UI: Add tab navigation
2026-08-27 22:17:47 +02:00
Nab
939a6c4c30
Replace plus/minus strings with UI icons in SliderPopup
2026-08-27 21:26:37 +02:00
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
c65eb7d54f
Fix the point in time in the frame that we run and render the ImDebugger
...
Turns out it matters quite a lot. Will see if I can clean this up later.
2026-08-09 18:29:33 +02:00
Henrik Rydgård
a957086eeb
Try to fix test failure (vary strange)
2026-08-08 00:45:11 +02:00
Henrik Rydgård
25a146a11c
Make the PPSSPP UI fit inside the imgui desktop
2026-08-07 17:56:09 +02:00
Henrik Rydgård
db8ff4391e
Enable ImDebugger everywhere, on top of the regular UI.
2026-08-07 17:35:15 +02:00
Henrik Rydgård
ca3fc0fa9e
Change the screenmanager input interface
2026-08-07 16:15:02 +02:00
Henrik Rydgård
a47edbf6ef
Move event queueing out of ScreenManager. This is a prerequisite for an upcoming change.
2026-08-07 14:42:17 +02:00
Henrik Rydgård
7219cd2f5a
Split off ScreenManager from Screen.cpp
2026-08-07 14:30:36 +02:00
Henrik Rydgård
2c73aead45
Minor code cleanup on pause screen
2026-08-07 08:49:29 +02:00
Henrik Rydgård
e4b90c0471
Fix issue with chat button / DevMenu button becoming focusable
...
This made gameplay a bit difficult when these buttons were enabled.
2026-08-07 06:56:52 +02:00
Henrik Rydgård
1c0740c4b9
SDL: Simplify graphics context fallback
2026-08-03 14:54:49 +02:00
Henrik Rydgård
a7b1b319ce
Limit PNG decode dimensions to prevent decompression bombs
...
pngLoadPtr allocated the decoded buffer directly from attacker-controlled
PNG IHDR dimensions with no upper bound, so browsing a crafted game icon
or savedata could trigger a multi-gigabyte allocation.
- Add maxWidth/maxHeight parameters to pngLoadPtr (default 8192x8192)
and reject images larger than the limits.
- Thread the limits through LoadTextureLevelsFromFileData,
CreateTextureFromFileData, and CreateTextureFromFile.
- Limit game icons to 256x128 in GameInfoCache and IconCache.
2026-08-01 11:41:24 +02:00
Henrik Rydgård
f94c094441
Fix problematic change in event processing ordering
2026-07-30 18:27:09 +02:00
Henrik Rydgård
78f80a0010
Some tweaks to avoid name collisions in upcoming commits
2026-07-10 12:11:17 +02:00
Henrik Rydgård
640a46588d
Fix hang on "More settings...".
...
Fixes #21893
2026-07-08 11:16:09 +02:00
Henrik Rydgård
48068384fe
Add ugly hack to prevent double-trigger of ESC to close the pause screen
2026-06-28 12:21:51 +02:00
Henrik Rydgård
2c10fd12c4
Delete the inputLock_. It will not be missed.
2026-06-25 13:02:16 +02:00
Henrik Rydgård
444f78bf84
Don't forget to clear the event queue..
2026-06-25 13:00:40 +02:00
Henrik Rydgård
72ee82844d
Doesn't yet work
2026-06-24 23:04:17 +02:00
Henrik Rydgård
729f11ecbe
Simplify away some nonsense
2026-06-24 22:55:34 +02:00
Henrik Rydgård
a4a6780b36
Some code simplification
2026-06-24 22:13:31 +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
0840e292ab
Move some logic out to a per-frame poll instead of per input event
2026-06-24 20:41:10 +02:00
Henrik Rydgård
5ab3d6042b
Move modifier key tracking out from the screen system
2026-06-16 10:57:55 +02:00
Henrik Rydgård
45f41be8f0
Add a debug window to check active compat flags
2026-06-05 17:55:28 +02:00
Henrik Rydgård
39e9d28b4e
Minor ScreenManager fix
2026-05-30 19:07:59 +02:00
Henrik Rydgård
d849db6be5
Buildfix, remove redundant variable
2026-05-30 19:07:59 +02:00
Henrik Rydgård
f163d1ecbc
Merge pull request #21738 from hrydgard/assorted-fixes
...
Code cleanup from GermanAizek, fix hidden ShowMenuBar option
2026-05-27 12:51:34 +02:00
Herman Semenoff
b1d140e8e7
OpenGL/Vulkan/UI: duplicate fields move to separate const reference var
2026-05-27 12:26:12 +02:00
Henrik Rydgård
5513fcb223
Merge pull request #21705 from GermanAizek/constexpr-cpp17
...
GPU: modernize use C++17 constexpr for precalculate compilation
2026-05-27 12:21:39 +02:00
Henrik Rydgård
4a420c95c2
Remove some redundant device caps, show clip/cull/depth-clamp in system info
2026-05-21 11:59:26 +02:00
Herman Semenoff
400d136f51
GPU: modernize use C++17 constexpr for precalculate compilation
2026-05-19 21:57:45 +03:00
Henrik Rydgård
cc0ece038c
Clean up the string type in RequestCallback - somehow was both char* and std::string????
...
Might be related to #21695
2026-05-18 14:16:34 +02:00
Henrik Rydgård
0092e266de
Merge pull request #21697 from GermanAizek/std-empty-and-clear
...
Core/UI: use clear() and empty() for std containers
2026-05-18 12:43:36 +02:00
Herman Semenoff
d406f63102
Core/UI: use clear() and empty() for std containers
2026-05-17 21:28:31 +03:00
Henrik Rydgård
91b3741a57
Implement a simple cheat database download facility
2026-05-16 22:31:13 +02:00
Henrik Rydgård
d78d51851c
More tab code cleanup
2026-05-13 17:25:52 +02:00
Henrik Rydgård
d9eb513600
TabHolder sanity check. Code cleanup.
2026-05-13 17:18:42 +02:00
Henrik Rydgård
59f545e804
Fix issue with the current tab not being saved through screen recreation
2026-05-12 10:13:00 +02:00
Henrik Rydgård
9d5a3ec354
Android: Add an error message with an info link if launching a file browser fails
2026-05-12 01:45:30 +02:00
Henrik Rydgård
2c0f562ff5
ScrollView: Don't have drags of the "opposite" orientation cancel clicks.
2026-05-10 23:41:39 +02:00
Henrik Rydgård
ed15ff7f8e
Fix GPUDriverTestScreen
2026-05-10 23:41:39 +02:00
Henrik Rydgård
00bfad40bd
More refactoring in TabHolder
2026-05-10 22:24:33 +02:00
Henrik Rydgård
41771d5369
Minor cleanup in TabHolder
2026-05-10 22:12:23 +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
32799755e6
Add some sanity checks in TabHolder (prompted by a crash report). Minor cleanup
2026-05-05 10:36:21 +02:00