update dynamic menu visibility on config dialog close#470
Merged
Jamiras merged 1 commit intoRetroAchievements:developfrom Mar 7, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Minimally addresses https://discord.com/channels/310192285306454017/353363923333808128/1227370418499883008
RETRO_ENVIRONMENT_SET_CORE_OPTIONS_UPDATE_DISPLAY_CALLBACKis designed to toggle the visibility of config options as the user changes values. However, that relies on the updated value being written back to the core, which RAlibretro only does if the user hits the OK button on the configuration dialog.As such, we previously decided not to handle the callback at all. However, it's still desirable to pick up the menu visibility changes after the setting is applied in case the user reopens the configuration dialog. Previously, the user would have to reload the core to pick up the visibility changes.
This is still not an optimal solution as the hidden settings that should be visible based on changing another setting remain hidden until the dialog is closed and reopened. However, there's nothing in the libretro API that allows us to notify the core of an option change without actually changing the option. RetroArch doesn't have an OK/Cancel paradigm for changing values. Values are changed immediately and the only way to revert the change is to manually set the selection back to the previous value. We could potentially keep a ledger of all changes made while the dialog is open and roll them back if the user hits cancel, but the changes would still be immediately applied to the core, which is undesirable in the case where the user hits cancel.