Skip to content

refresh() overhaul - #38

Draft
ze2j wants to merge 9 commits into
dev_v0_2_1from
refresh_overhaul
Draft

refresh() overhaul#38
ze2j wants to merge 9 commits into
dev_v0_2_1from
refresh_overhaul

Conversation

@ze2j

@ze2j ze2j commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Description

Fix #37

Testing

Run all tests.

AI disclosure

Initial implementation + code comments. Design and final implementation are mine.

refresh() read pane geometry from two places: the pane nodes for
change detection and the axis titles, and PaneStack.compute_child_rects()
for the layout. The two disagree while a resize is pending, a stale
layout could survive unnoticed.

Everything now reads the rects the stack is about to apply. Axis title
insets take the rects and the stack global position instead of the pane
nodes.
@ze2j ze2j self-assigned this Sep 2, 2026
@ze2j ze2j added bug Something isn't working enhancement Improvement labels Sep 2, 2026
@ze2j ze2j changed the title Read pane geometry from one source refresh() overhaul Sep 2, 2026
@ze2j ze2j added this to the v0.2.1 milestone Sep 2, 2026
@ze2j ze2j linked an issue Sep 2, 2026 that may be closed by this pull request
ze2j added 8 commits September 2, 2026 13:13
The refresh read pane sizes that Godot had not updated yet, so the
plot kept the geometry of its previous size after a resize.

The pane stack now computes the layout itself, inside its sort, which
is the first moment the real sizes exist. The refresh only prepares
the styles and the domain, then asks for a sort. Nothing outside the
sort reads a pane size or position any more.
XYAxisConfigSnapshot will be dropped once each config class has its tracker.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement Improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refresh() overhaul

1 participant