From a71210689e2a315b36bb6ba03cd0735f15649fa8 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 3 Mar 2009 23:09:58 +0000 Subject: [PATCH] Fix issue #1013: Refreshing Process-List switches tab instead --- source/main.dfm | 2 +- source/main.pas | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/source/main.dfm b/source/main.dfm index f33cc747..c64028f3 100644 --- a/source/main.dfm +++ b/source/main.dfm @@ -498,7 +498,7 @@ object MainForm: TMainForm Align = alClient HotTrack = True TabOrder = 0 - OnChange = editFilterVTChange + OnChange = PageControlHostChange object tabVariables: TTabSheet Caption = 'Variables' object ListVariables: TVirtualStringTree diff --git a/source/main.pas b/source/main.pas index 9c5ec5b0..de6118e9 100644 --- a/source/main.pas +++ b/source/main.pas @@ -571,6 +571,7 @@ type Sender: TObject; var CurrentInput: WideString; var x, y: Integer; var CanExecute: Boolean); procedure PageControlMainChange(Sender: TObject); + procedure PageControlHostChange(Sender: TObject); procedure ValidateControls(FrmIsFocussed: Boolean = true); procedure ValidateQueryControls(FrmIsFocussed: Boolean = true); function FieldContent(ds: TDataSet; ColName: WideString): WideString; @@ -3884,7 +3885,8 @@ begin // Move focus to relevant controls in order for them to receive keyboard events. // Do this only if the user clicked the new tab. Not on automatic tab changes. if Sender = PageControlMain then begin - if tab = tabDatabase then ListTables.SetFocus + if tab = tabHost then PageControlHostChange(Sender) + else if tab = tabDatabase then ListTables.SetFocus else if (tab = tabTable) and (ListColumns.Visible) then ListColumns.SetFocus else if tab = tabData then begin viewdata(Sender); @@ -3898,6 +3900,22 @@ begin end; +procedure TMainForm.PageControlHostChange(Sender: TObject); +var + tab: TTabSheet; + list: TBaseVirtualTree; +begin + tab := PageControlHost.ActivePage; + if tab = tabVariables then list := ListVariables + else if tab = tabStatus then list := ListStatus + else if tab = tabProcesslist then list := ListProcesses + else if tab = tabCommandStats then list := ListCommandStats + else Exit; // Silence compiler warning + list.SetFocus; + editFilterVTChange(Sender); +end; + + {*** Ensures that we're connected to the currently selected database. }