Repository navigation
Added ScaleRow to GtkHelper - #34
Merged
Merged
Conversation
… takes away customization
nazbert
added a commit
to nazbert/Deckard
that referenced
this pull request
Jul 12, 2026
… settings access Three related ordering defects (issue StreamController#34): - on_ready_called is set at schedule time (it must be: plugin API calls inside on_ready gate on it via raise_error_if_not_ready), but own_actions_tick treated it as 'ready' -- on_tick ran before on_ready had even started. New ActionCore.on_ready_finished is set in a finally after on_ready returns/raises, and ticks gate on it. - own_actions_update dispatched on_update mid-initialization; the default on_update calls on_ready (compat), producing a second on_ready running concurrently with the pool's initial one (duplicate backend processes). Updates now skip until on_ready_finished; nothing is lost -- the initial ready sequence ends with its own on_update. - Actions of one plugin run on_ready in parallel since the pool-based page load, so get_settings' v1->v2 conversion write raced concurrent set_settings: a stale conversion could clobber a fresh save. A per-plugin RLock (lazily created for __new__-built instances) serializes the accessors. set_settings' read is also hardened against a corrupt existing file -- the same class get_settings already guards. The new scenario red-checks all three against the unfixed code: 8 ticks delivered pre-ready, 2 concurrent on_ready entries, and a v1 conversion clobbering a concurrent save.
nazbert
added a commit
to nazbert/Deckard
that referenced
this pull request
Jul 12, 2026
…treamController#16, StreamController#127) - Page.set_media_fps live-applied to matching inputs on ALL controllers: editing one page's FPS row rebased the playing video timeline on another deck showing a different page (self-corrects only on that deck's next page load). Now filtered by active page, the same filter update_input uses (issue StreamController#14). - mark_page_ready_to_clear dereferenced active_page at call time; both bracketing callers (the tick loop and the key handler) re-derefed it for the True-call, so a page switch during a slow on_tick left the OLD page pinned ready_to_clear=False forever -- unevictable, silently shrinking the eviction budget. The False-call now returns the page it marked and the True-calls pass it back (issue StreamController#16). - Page.initialize_actions' bare check-then-set on on_ready_called let two concurrent load_page(samePage) calls both claim the same action and submit a second concurrent on_ready (duplicate backend processes -- the class StreamController#34 closed for the on_update path). The claim is now atomic under a per-page lock; the loads and pool submit stay outside it (issue StreamController#127). tests/scenario_small_guards.py red-checks all three: the FPS bleed, the pinned page, and (via a capture-before-rendezvous barrier property making the interleave deterministic) the double claim.
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.
You can now add Scales to Plugin Actions by providing the ScaleRow.
It has a title, min, max and step value that is required to set the scale up correctly.
There are also two optional values: