Skip to content

Fix issue #3366: Preserve tree expansion and UI state after refresh#3369

Merged
sdottaka merged 3 commits into
masterfrom
fix/preserve-dirview-state-after-refresh
May 6, 2026
Merged

Fix issue #3366: Preserve tree expansion and UI state after refresh#3369
sdottaka merged 3 commits into
masterfrom
fix/preserve-dirview-state-after-refresh

Conversation

@sdottaka

@sdottaka sdottaka commented May 6, 2026

Copy link
Copy Markdown
Member

This fixes #3366.

When “Expand different subfolders” or “Expand identical subfolders” was selected in the Options dialog under Compare/Folder, the tree state was not restored correctly after rescanning with F5 or Ctrl+F5.

This change also restores the scroll position and focused item after rescanning.

@sdottaka sdottaka marked this pull request as ready for review May 6, 2026 23:43
@sdottaka sdottaka requested a review from Copilot May 6, 2026 23:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses WinMerge issue #3366 by preserving folder-compare view state across refresh/rescan operations (F5 / Ctrl+F5), so previously collapsed/expanded nodes aren’t unexpectedly expanded and the user’s position in the list is maintained.

Changes:

  • Add saving/restoring of DirView focus + scroll position across rescans.
  • Avoid applying “Expand different/identical subfolders” auto-expansion when a saved tree state is being restored.
  • Save UI/tree state before additional rescan triggers (e.g., marked rescan, status-bar compare method change).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
Src/DirView.h Adds APIs and member storage for persisting/restoring UI state across rescans.
Src/DirView.cpp Implements UI state save/restore and integrates it into refresh/rescan/update flow.
Src/DirActions.h Introduces DirViewUIState struct to hold focus/scroll restoration data.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Src/DirView.cpp Outdated
Comment thread Src/DirActions.h Outdated
sdottaka and others added 2 commits May 7, 2026 08:50
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@sdottaka sdottaka merged commit 3e469f3 into master May 6, 2026
2 of 3 checks passed
@sdottaka sdottaka deleted the fix/preserve-dirview-state-after-refresh branch May 6, 2026 23:52
@sdottaka sdottaka mentioned this pull request May 7, 2026
@sdottaka sdottaka added this to the v2.16.56.2 milestone May 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] ctrl+F5, F5

2 participants