mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-14 10:02:10 +08:00
Keep scroll offset when refreshing data grid. Fixes issue #2003.
This commit is contained in:
@ -3680,6 +3680,7 @@ var
|
|||||||
KeyCols, ColWidths, WantedColumnOrgnames: TStringList;
|
KeyCols, ColWidths, WantedColumnOrgnames: TStringList;
|
||||||
WantedColumns: TTableColumnList;
|
WantedColumns: TTableColumnList;
|
||||||
c: TTableColumn;
|
c: TTableColumn;
|
||||||
|
OldScrollOffset: TPoint;
|
||||||
|
|
||||||
procedure InitColumn(idx: Integer; TblCol: TTableColumn);
|
procedure InitColumn(idx: Integer; TblCol: TTableColumn);
|
||||||
var
|
var
|
||||||
@ -3741,6 +3742,7 @@ begin
|
|||||||
|
|
||||||
// Load last view settings
|
// Load last view settings
|
||||||
HandleDataGridAttributes(RefreshingData);
|
HandleDataGridAttributes(RefreshingData);
|
||||||
|
OldScrollOffset := DataGrid.OffsetXY;
|
||||||
|
|
||||||
DataGridDB := SelectedTable.Database;
|
DataGridDB := SelectedTable.Database;
|
||||||
DataGridTable := SelectedTable.Name;
|
DataGridTable := SelectedTable.Name;
|
||||||
@ -3849,10 +3851,6 @@ begin
|
|||||||
if not SynMemoFilter.Focused then
|
if not SynMemoFilter.Focused then
|
||||||
vt.SetFocus;
|
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
|
if vt.RootNodeCount > DataGridFocusedNodeIndex then begin
|
||||||
SelectNode(vt, DataGridFocusedNodeIndex);
|
SelectNode(vt, DataGridFocusedNodeIndex);
|
||||||
for i:=0 to vt.Header.Columns.Count-1 do begin
|
for i:=0 to vt.Header.Columns.Count-1 do begin
|
||||||
@ -3862,6 +3860,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
if RefreshingData then
|
||||||
|
vt.OffsetXY := OldScrollOffset;
|
||||||
|
|
||||||
ValidateControls(Sender);
|
ValidateControls(Sender);
|
||||||
DisplayRowCountStats;
|
DisplayRowCountStats;
|
||||||
|
Reference in New Issue
Block a user