mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-26 20:04:00 +02:00
DockedFormEditor: GTK2: Focus designer at FakeMenu click
git-svn-id: trunk@64951 -
This commit is contained in:
parent
3cdc590972
commit
5ac03d9c51
@ -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.
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user