Skip to content

Commit

Permalink
Menu bar, clear selected index on control focus change
Browse files Browse the repository at this point in the history
  • Loading branch information
ollydev committed Feb 17, 2024
1 parent 7e02051 commit 75d99bf
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions Source/simba.ide_mainmenubar.pas
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ TSimbaMainMenuBar = class(TComponent)
FMenuBar: TSimbaMenuBar;

procedure DoApplicationKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DoActiveControlChange(Sender: TObject; LastControl: TControl);

procedure DoTabModified(Sender: TObject);
procedure DoTabChanged(Sender: TObject);
procedure DoTabScriptStateChange(Sender: TObject);
public
constructor Create; reintroduce;
destructor Destroy; override;

property MenuBar: TSimbaMenuBar read FMenuBar;
end;
Expand Down Expand Up @@ -103,6 +105,11 @@ procedure TSimbaMainMenuBar.DoApplicationKeyDown(Sender: TObject; var Key: Word;
end;
end;

procedure TSimbaMainMenuBar.DoActiveControlChange(Sender: TObject; LastControl: TControl);
begin
FMenuBar.HotIndex := -1;
end;

procedure TSimbaMainMenuBar.DoTabModified(Sender: TObject);
begin
SimbaForm.MenuItemSave.Enabled := SimbaMainToolBar.ButtonSave.Enabled;
Expand Down Expand Up @@ -143,12 +150,23 @@ constructor TSimbaMainMenuBar.Create;
FMenuBar.AddMenu('Help', SimbaForm.MainMenuHelp);

Application.AddOnKeyDownBeforeHandler(@DoApplicationKeyDown);
Screen.AddHandlerActiveControlChanged(@DoActiveControlChange);

SimbaIDEEvents.Register(SimbaIDEEvent.TAB_MODIFIED, @DoTabModified, True);
SimbaIDEEvents.Register(SimbaIDEEvent.TAB_CHANGE, @DoTabChanged, True);
SimbaIDEEvents.Register(SimbaIDEEvent.TAB_SCRIPTSTATE_CHANGE, @DoTabScriptStateChange, True);
end;

destructor TSimbaMainMenuBar.Destroy;
begin
Application.RemoveAsyncCalls(Self);
Application.RemoveAllHandlersOfObject(Self);

Screen.RemoveAllHandlersOfObject(Self);

inherited Destroy();
end;

procedure CreateMainMenuBar;
begin
SimbaMainMenuBar := TSimbaMainMenuBar.Create();
Expand Down

0 comments on commit 75d99bf

Please sign in to comment.