diff --git a/components/dockedformeditor/source/dockedformaccesses.pas b/components/dockedformeditor/source/dockedformaccesses.pas index 08eb2a76db..1594187292 100644 --- a/components/dockedformeditor/source/dockedformaccesses.pas +++ b/components/dockedformeditor/source/dockedformaccesses.pas @@ -71,8 +71,8 @@ type procedure BeginUpdate; override; procedure EndUpdate(AModified: Boolean = False); override; function IsAnchorDesign: Boolean; - function MainMenuHeight: Integer; function MainMenuFaked: Boolean; + function MainMenuHeight: Integer; public property AnchorDesigner: TBasicAnchorDesigner read FAnchorDesigner write FAnchorDesigner; property CurrentObjectInspector: TObjectInspectorDlg read GetCurrentObjectInspector; @@ -219,20 +219,6 @@ begin Result := Assigned(DesignWinControl); end; -function TDesignFormIDE.MainMenuHeight: Integer; -begin - // some WS (Gtk2) return too big SM_CYMENU, just set it according to font height - // no problem, it is used only for the fake main menu - {$IFDEF LCLWin32} - Result := lclintf.GetSystemMetrics(SM_CYMENU); - {$ELSE} - if Form.HandleAllocated then - Result := Form.Canvas.TextHeight('Hg') * 4 div 3 - else - Result := 20; - {$ENDIF} -end; - function TDesignFormIDE.MainMenuFaked: Boolean; var i: Integer; @@ -252,5 +238,19 @@ begin Exit(True); end; +function TDesignFormIDE.MainMenuHeight: Integer; +begin + // some WS (Gtk2) return too big SM_CYMENU, just set it according to font height + // no problem, it is used only for the fake main menu + {$IFDEF LCLWin32} + Result := lclintf.GetSystemMetrics(SM_CYMENU); + {$ELSE} + if Form.HandleAllocated then + Result := Form.Canvas.TextHeight('Hg') * 4 div 3 + else + Result := 20; + {$ENDIF} +end; + end. diff --git a/components/dockedformeditor/source/dockedresizecontrol.pas b/components/dockedformeditor/source/dockedresizecontrol.pas index b59af4cac3..5b703696df 100644 --- a/components/dockedformeditor/source/dockedresizecontrol.pas +++ b/components/dockedformeditor/source/dockedresizecontrol.pas @@ -53,6 +53,7 @@ type procedure FakeExitEnter(Sender: TObject); procedure FakeKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState); procedure FakeKeyUp(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState); + procedure FakeMenuEnter(Sender: TObject); function FakeMenuNeeded: Boolean; procedure FakeMenuPaint(Sender: TObject); procedure FakeUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char); @@ -253,6 +254,11 @@ begin FDesignForm.Form.IntfUTF8KeyPress(UTF8Key, 1, False); end; +procedure TResizeControl.FakeMenuEnter(Sender: TObject); +begin + DesignerSetFocus; +end; + function TResizeControl.GetAnchorContainer: TWinControl; begin Result := FResizeContainer.AnchorContainer; @@ -383,6 +389,7 @@ begin FResizeContainer.ResizeBars.OnMouseMove := @SizerMouseMove; FResizeContainer.ResizeBars.OnMouseUp := @SizerMouseUp; FResizeContainer.ResizeBars.OnPaint := @ResizeBarPaint; + FResizeContainer.FakeMenu.OnEnter := @FakeMenuEnter; FFakeFocusControl := TEdit.Create(Self); FFakeFocusControl.Parent := Self;