Repository navigation
Conversation
Keep programmatic Checked assignments separate from click-driven three-state cycling. Notify once per logical value change and reconnect native toggles before invoking callbacks so nested assignments remain observable. Reset the native toggle guard in finally so a throwing callback does not suppress later notifications and state transitions. Add focused regression coverage for assignments, repeated values, native clicks, nested callbacks and recovery after callback exceptions.
Descolada
force-pushed
the
upstream/gtk-checkbox-checked
branch
from
October 27, 2026 08:44
9b078b2 to
abe2f94
Compare
Descolada
marked this pull request as ready for review
October 27, 2026 08:47
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.
Setting
Checked = trueon a GTK three-state CheckBox can leave it indeterminate instead: GTK emitsToggledfor property assignments, and the click handler advances the state again. RepeatedChecked = nullassignments also raise duplicate notifications, and assignments made inside a click callback can lose their notification.Detach the click-driven handler while updating the native state, restore it in
finally, and raiseCheckedChangedonce when the logical value changes. Reconnect before callbacks so reentrant assignments remain observable. Also reset the click handler's recursion guard infinally; a throwing callback otherwise disables later cycling and notifications.Adds four focused GTK3 tests covering assigned values and repeated-assignment notifications, one complete three-state click cycle, assignment from a click callback, and recovery after a throwing callback.