diff --git a/source/helpers.pas b/source/helpers.pas index d63897d2..9839f655 100644 --- a/source/helpers.pas +++ b/source/helpers.pas @@ -2532,6 +2532,7 @@ begin else VT.TreeOptions.PaintOptions := VT.TreeOptions.PaintOptions - [toHotTrack]; VT.OnGetHint := MainForm.vstGetHint; + VT.OnScroll := MainForm.vstScroll; VT.ShowHint := True; VT.HintMode := hmToolTip; // Apply case insensitive incremental search event diff --git a/source/main.pas b/source/main.pas index 110e0e7f..6bce6a40 100644 --- a/source/main.pas +++ b/source/main.pas @@ -727,6 +727,7 @@ type procedure SynMemoQueryPaintTransient(Sender: TObject; Canvas: TCanvas; TransientType: TTransientType); procedure actQueryFindAgainExecute(Sender: TObject); + procedure vstScroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer); private ReachedEOT: Boolean; FDelimiter: String; @@ -9284,5 +9285,16 @@ begin Result := '0x' + Results.BinColAsHex(Column); end; + +procedure TMainForm.vstScroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer); +begin + // A tree gets scrolled only when the mouse is over it - see FormMouseWheel + // Our home brewn cell editors do not reposition when the underlying tree scrolls. + // To avoid confusion, terminate editors then. + if Sender.IsEditing then + Sender.EndEditNode; +end; + + end.