fix: keep game-menu button in sync with capture state#96
Open
terbin wants to merge 1 commit into
Open
Conversation
The escape-menu button was built once on screen init and captured both its label and click action at build time. When capturing flipped while the menu stayed open the button went stale in two visible ways: after the drain finished the "Save Capture" label remained and clicks routed to stop() on a not-capturing state; during the drain itself the button still said "Save Capture" and was clickable even though the click was a no-op via the stopping sentinel. Route the click handler by current state at click time and drive both the label and the active flag from (capturing, stopping) via a per-tick refresh: idle shows "WorldTools"; capturing-not-stopping shows "Save Capture" clickable; stopping shows "Saving capture of <name>..." disabled. The refresh runs before the !capturing guard so the true->false flip at drain end fires.
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.
The escape-menu button was built once on screen init and captured both its label and click action at build time. When capturing flipped while the menu stayed open the button went stale in two visible ways: after the drain finished the "Save Capture" label remained and clicks routed to stop() on a not-capturing state; during the drain itself the button still said "Save Capture" and was clickable even though the click was a no-op via the stopping sentinel.
Route the click handler by current state at click time and drive both the label and the active flag from (capturing, stopping) via a per-tick refresh: idle shows "WorldTools"; capturing-not-stopping shows "Save Capture" clickable; stopping shows "Saving capture of ..." disabled. The refresh runs before the !capturing guard so the true->false flip at drain end fires.
Verification
Menu-button label and click behaviour stay in sync across drain start and end (verified by opening the escape menu before, during, and after a capture).