fix(ui): Diff-Viewer scrollt jetzt auch horizontal synchron
VerticalScrollSync mirrort nur noch Y, X blieb pro Pane unabhaengig. Beide Panes nutzen dieselbe Schrift/Breite, also X 1:1 mitspiegeln statt wie bei Y ueber TargetOffset umzurechnen. Die Echo-Abbruchbedingung prueft jetzt beide Achsen (vorher nur Y), sonst wuerde der neue X-Schreibvorgang seine eigene Echo-Bedingung nie erfuellen und endlos weiterlaufen. Klasse in ScrollSync umbenannt (DiffTextView + ConflictResolverView mitgezogen), da sie nicht mehr nur vertikal synchronisiert. Kein Headless-Test hinzugefuegt: DiffDispatcherGuardTests.cs dokumentiert bereits, dass ein bootstrapptes Avalonia Application/Dispatcher in ClaudeDo.Ui.Tests nach drei eskalierenden Versuchen als Sackgasse verifiziert wurde (Dispatcher-Thread-Affinitaet kollidiert mit xUnits Worker-Pool ohne Thread-Garantie; Avalonia.Headless.XUnit kollidiert mit xunit 2.9.3). Als Finding avaloniaedit-ui-test-dead-end festgehalten. Sichtpruefung bleibt offen (Side-by-side + Merge-Editor mit ueberbreiten Zeilen).
This commit is contained in:
@@ -78,8 +78,8 @@ public partial class ConflictResolverView : Window
|
||||
|
||||
// Panes are whole files here, not aligned rows, so raw pixel offsets line up and the
|
||||
// gutter buttons only have to be repositioned once per scroll.
|
||||
new VerticalScrollSync(new[] { OursEditor, ResultEditor, TheirsEditor },
|
||||
afterSync: PositionGutters);
|
||||
new ScrollSync(new[] { OursEditor, ResultEditor, TheirsEditor },
|
||||
afterSync: PositionGutters);
|
||||
|
||||
var conflict = DiffEditorSetup.Brush(this, "MergeConflictTintBrush", Color.Parse("#28C87060"));
|
||||
var resolved = DiffEditorSetup.Brush(this, "MergeResolvedTintBrush", Color.Parse("#206FA86B"));
|
||||
|
||||
Reference in New Issue
Block a user