Commit Graph
41 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5.5 e2cda3d8f0 UI: Forget the views' pending requests when recreating them
WipeRequesterToken() only reset the screen's token, after CreateViews() had
already handed it to the new views, so nothing was ever forgotten - not even
in ~Screen(), which saw a token of -1. A text input dialog open across a
RecreateViews() (on the RetroAchievements screen, a slow login failing) would
then write through a deleted PopupTextInputChoice, possibly into the field
that took its place: #21708.

Requests made while creating views now get their own token, forgotten
before the views are deleted. Screen-level requests keep the screen's token.

RequestManager: ForgetRequestsWithToken() now locks, and also drops
responses that arrived but weren't processed yet. ProcessRequests() calls
the callbacks one at a time without holding the lock, so a callback that
closes a screen drops the rest of that screen's responses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:29:47 +02:00
Henrik RydgårdandClaude Opus 5.5 b4d5d53b8a ImDebugger: Enable text input while an imgui text field is active
Since db8ff43, a leftover local shadowed lastImguiEnabled_ in runImDebugger,
so TEXT_GOTFOCUS was never sent and SDL never started text input for imgui.
Drive it from io.WantTextInput instead, so it's only on while editing.

The regular UI and the debugger now say independently whether they want text
input, and the platform only gets TEXT_LOSTFOCUS once neither does, so leaving
an imgui field doesn't break type-to-search on the screen underneath.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-11 18:08:00 +02:00
Henrik RydgårdandClaude Opus 5.5 77a6abfe6e Add System_ShareFile, for handing a file to another app
Offers a file through the system share sheet, for things like sending a
zipped savestate to a friend. Android for now (SYSPROP_SUPPORTS_SHARE_FILE):
content:// paths from a picked folder are shared as they are, and plain paths
through a FileProvider. Either way the receiving app can read just that file.
With no MIME type given, it's guessed from the extension.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 15:59:42 +02:00
Henrik Rydgård 16c7ec390f Headless: Start taking logic out of the "HeadlessHost"
Also update some agent files
2026-07-21 11:01:48 +02:00
Henrik Rydgård e23d866a95 Plumb through an error code for missing activity. Will later be used to improve the UI. 2026-05-11 10:52:36 +02:00
Henrik Rydgård e8d648e91d InstallZip: Fix problem where the delete-after option didn't work
The file was held open.
2026-03-06 10:57:22 +01:00
Henrik Rydgård ad4da764df Rework the internal API for applying the fullscreen state. Fixes. 2026-02-02 11:45:46 +01:00
Henrik Rydgård 6df9e513c1 Logging, comments and debugger fixes, plus simple dumping of the first block of streaming Atrac3 2025-06-25 01:08:47 +02:00
Henrik Rydgård 8d6f8b9399 Cleanup and paranoia 2025-06-06 10:34:13 +02:00
Henrik Rydgård 4edbc14025 Fix the background image selector on MacOS and Linux (with pfd)
Forgot that the backends need changes too, after I split out image file selection from the other types.
2025-05-27 23:04:18 +02:00
Henrik Rydgård 71533ac2b7 Trash handling is too high level for FileUtil, move it up. 2025-04-15 17:42:24 +02:00
Henrik Rydgård 87199bacaa Minor tweaks, comments and fixes 2025-03-06 13:37:38 +01: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 9ec5efdcc5 Add facility to run callbacks on the window thread 2024-04-06 12:14:29 +02:00
Henrik Rydgård 616ee81f84 Add another parameter to the internal "request" framework. 2024-04-06 12:04:45 +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 bc92226715 Folder browser (like when clicking Browse...): Preinitialize with the current folder. 2024-01-25 12:47:37 +01:00
Henrik Rydgård 2d9afaa6df Android: Add code for "show folder", don't activate it since it's not reliable (need a query on startup) 2024-01-21 13:35:59 +01:00
Henrik Rydgård 1304d04161 Fix a particular type of race condition in file dialog requests
It seems to be possible for a user to back out of a screen before
receiving the "dialog completed" callback on Android, in which case
things pointed to by the callback might be gone.

In this case, it's better to simply not call the callback, rather than
crashing.

This is accomplished by assigning "Tokens" to screens that cause
requests, and in ~Screen, invalidate any pending requests belonging to
that token.
2024-01-18 12:25:55 +01:00
Unknown W. Brackets 9cc266b0e7 Android: Fix developer tools -> run tests. 2023-09-07 17:36:41 -07:00
Henrik Rydgård 60492ae579 Make System_ShowFileInFolder a "request"
Also makes support queryable.

Lets us remove the dummy implementations.
2023-08-24 14:22:35 +02:00
Henrik Rydgård ab6e902fea Make naett work on Android, UWP, Mac. Exclude on Linux 2023-07-21 10:28:31 +02:00
Henrik Rydgård eb21a2e6c9 Break out the OSD data holder from Common/System/System.h, into OSD.cpp/h 2023-06-30 17:15:49 +02:00
Henrik Rydgård 69a5ca0e1d A bunch of visual updates and fixes. Lots left to polish. 2023-06-26 10:01:42 +02:00
Henrik Rydgård c442d1de86 Implement rendering of unlocked achievements. Not final design. 2023-06-26 10:01:42 +02:00
Henrik Rydgård c76b6a48ab Prepare for detailed overlay messages 2023-06-21 01:08:25 +02:00
Henrik Rydgård ff75eced70 Progress bar: Fix the indeterminate state 2023-06-21 01:08:24 +02:00
Henrik Rydgård d2c3a7c978 Add support for displaying progress bars 2023-06-20 22:44:31 +02:00
Henrik Rydgård 6ba0479edc OSD: Add colored backgrounds to OSD messages, according to type.
This also reorganizes a little to make rendering achievement popups more
natural later.

Adds info.png to the atlasscript, but doesn't yet rebuild it - more
images are coming.
2023-06-20 17:32:45 +02:00
Henrik Rydgård 575c428867 Buildfix 2023-06-20 15:23:45 +02:00
Henrik Rydgård ed0c4b7a9e Rename OSD "Message" to "Entry" since it can soon be multiple other things (progress bar, etc). 2023-06-20 15:07:34 +02:00
Henrik Rydgård 7cc8c6cea4 OSD: Add semantics, move the the OSD state to common (while keeping the renderer in the UI). 2023-06-20 14:40:46 +02:00
Unknown W. Brackets 09c7898cb2 Common: Reduce logging of system requests. 2023-03-25 17:12:44 -07:00
Unknown W. Brackets d621bbd73d Common: Avoid buildup of blank callbacks. 2023-03-25 17:12:44 -07:00
Henrik Rydgård 221d2f7eb5 RequestManager: Add a separate callback for failures. Separate because we usually don't need it, except Osk. 2023-03-25 18:49:23 +01:00
Henrik Rydgård a73ac49d59 Move the non-working "Create desktop shortcut" stuff to the request framework 2023-03-24 20:05:48 +01:00
Henrik Rydgård b7350f3cbf Fix folder browser on Android and Windows 2023-03-22 19:25:35 +01:00
Henrik Rydgård 9508ef467e Port folder browser too, now this time start with Qt 2023-03-22 19:25:35 +01:00
Henrik Rydgård 70f0ac04af Port the file browser spawned by the Load button to the new request stuff 2023-03-22 15:36:14 +01:00
Henrik Rydgård 0403bbf084 Make the new image selection path work on Android as well. 2023-03-22 14:53:07 +01:00
Henrik Rydgård de064e210e Replace the inputbox queue with a more generic RequestManager. 2023-03-22 12:41:11 +01:00