Skip to content

Accept all open sweeps viewer backed pairs - #862

Merged
SimonCropp merged 2 commits into
mainfrom
accept-open-viewer-pairs
Sep 1, 2026
Merged

Accept all open sweeps viewer backed pairs#862
SimonCropp merged 2 commits into
mainfrom
accept-open-viewer-pairs

Conversation

@SimonCropp

Copy link
Copy Markdown
Member

"Accept all open" matched a move by its live process, which is what DiffRunner records for every tool that opens one window per pair. The viewer opens none: a pair whose tool is the viewer is tracked with no process id, because it is drawn as a row in the one window every pending pair shares and so nothing may kill it. The one kind of move that is unambiguously on screen was therefore the one kind the hot key could never match, and with the viewer as the resolved tool the key looked dead. The process test predates the viewer becoming a diff tool and was not revisited then.

TrackedMove now answers IsOpen for itself - the viewer, or a live process - and AcceptOpen asks that instead. Whether a tracked move is a viewer one is read off its executable name rather than through DiffTools.TryFindByPath, which is an exact path lookup: the sender resolves the copy bundled in its own DiffEngine package and a tray carries one of its own, so those two paths are never the same string.

IsOpen joins the debug view, since it is the field this turned on.

"Accept all open" matched a move by its live process, which is what
DiffRunner records for every tool that opens one window per pair. The
viewer opens none: a pair whose tool is the viewer is tracked with no
process id, because it is drawn as a row in the one window every pending
pair shares and so nothing may kill it. The one kind of move that is
unambiguously on screen was therefore the one kind the hot key could
never match, and with the viewer as the resolved tool the key looked
dead. The process test predates the viewer becoming a diff tool and was
not revisited then.

TrackedMove now answers IsOpen for itself - the viewer, or a live
process - and AcceptOpen asks that instead. Whether a tracked move is a
viewer one is read off its executable name rather than through
DiffTools.TryFindByPath, which is an exact path lookup: the sender
resolves the copy bundled in its own DiffEngine package and a tray
carries one of its own, so those two paths are never the same string.

IsOpen joins the debug view, since it is the field this turned on.
@SimonCropp SimonCropp added this to the 20.2.1 milestone Aug 31, 2026
@SimonCropp
SimonCropp merged commit 64595d6 into main Sep 1, 2026
9 checks passed
@SimonCropp
SimonCropp deleted the accept-open-viewer-pairs branch September 1, 2026 00:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant