From 4a78cad0a9c0deb8bea742f024b62fd699748d40 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Thu, 10 Jun 2010 18:48:25 +0000 Subject: [PATCH] Keep scroll offset when refreshing data grid. Fixes issue #2003. --- source/main.pas | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/main.pas b/source/main.pas index 571fed18..bfdf2e69 100644 --- a/source/main.pas +++ b/source/main.pas @@ -3680,6 +3680,7 @@ var KeyCols, ColWidths, WantedColumnOrgnames: TStringList; WantedColumns: TTableColumnList; c: TTableColumn; + OldScrollOffset: TPoint; procedure InitColumn(idx: Integer; TblCol: TTableColumn); var @@ -3741,6 +3742,7 @@ begin // Load last view settings HandleDataGridAttributes(RefreshingData); + OldScrollOffset := DataGrid.OffsetXY; DataGridDB := SelectedTable.Database; DataGridTable := SelectedTable.Name; @@ -3849,10 +3851,6 @@ begin if not SynMemoFilter.Focused then vt.SetFocus; - if not RefreshingData then begin - // Scroll to top left if switched to another table - vt.OffsetXY := Point(0, 0); - end; if vt.RootNodeCount > DataGridFocusedNodeIndex then begin SelectNode(vt, DataGridFocusedNodeIndex); for i:=0 to vt.Header.Columns.Count-1 do begin @@ -3862,6 +3860,8 @@ begin end; end; end; + if RefreshingData then + vt.OffsetXY := OldScrollOffset; ValidateControls(Sender); DisplayRowCountStats;