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.
Fixes issues w/ pane grid continuity of widget state when adding / removing panes, drag / dropping panes, or maximize / restoring panes. I've tested this fix with
halloy
and can confirm that scrollable offsets within each pane are perfectly retained when doing all the above operations. Previously the states would have gotten shuffled around relative to the panes which would cause the wrong scrollable offsets to get used for each pane (jump around).For
maximize
/restore
, we still need to buildview
for the hidden panes so diff'ing them doesn't break. This can be optimized to avoid callingdiff
on those hidden panes, allowing us to skip viewing them, but this adds additional complexity I didn't want to try and tackle here. The current approach allows us to naively zip all content, layout & state and then just applying a filter to return the maximized pane within each widget operation.