From 1ea9fd9ddda34ed011a43526cd169d17fdedc287 Mon Sep 17 00:00:00 2001 From: juha Date: Wed, 19 Apr 2017 08:14:55 +0000 Subject: [PATCH] =?UTF-8?q?LCL-Cocoa:=20Update=20a=20changed=20main=20menu?= =?UTF-8?q?=20correctly.=20Issue=20#30809,=20patch=20from=20Zo=C3=AB=20Pet?= =?UTF-8?q?erson.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: trunk@54635 - --- lcl/interfaces/cocoa/cocoawinapi.inc | 15 +++++++++++++++ lcl/interfaces/cocoa/cocoawinapih.inc | 1 + 2 files changed, 16 insertions(+) diff --git a/lcl/interfaces/cocoa/cocoawinapi.inc b/lcl/interfaces/cocoa/cocoawinapi.inc index 7fa881c194..fd71484682 100644 --- a/lcl/interfaces/cocoa/cocoawinapi.inc +++ b/lcl/interfaces/cocoa/cocoawinapi.inc @@ -2250,6 +2250,21 @@ begin end; end; +function TCocoaWidgetSet.SetMenu(AWindowHandle: HWND; AMenuHandle: HMENU): Boolean; +var + lWin: NSWindow; +begin + Result := False; + lWin := GetNSObjectWindow(NSObject(AWindowHandle)); + if (lWin <> nil) and lWin.isKindOfClass(TCocoaWindow) and + (TCocoaWindow(lWin).LCLForm.Menu.Handle = AMenuHandle) then + begin + if lWin.isKeyWindow or lWin.isMainWindow then + SetMainMenu(AMenuHandle, TCocoaWindow(lWin).LCLForm.Menu); + Result := True; + end; +end; + {------------------------------- FONT AND TEXT --------------------------------} function TCocoaWidgetSet.SetTextColor(DC: HDC; Color: TColorRef): TColorRef; diff --git a/lcl/interfaces/cocoa/cocoawinapih.inc b/lcl/interfaces/cocoa/cocoawinapih.inc index 326c60df3c..9614b13959 100644 --- a/lcl/interfaces/cocoa/cocoawinapih.inc +++ b/lcl/interfaces/cocoa/cocoawinapih.inc @@ -169,6 +169,7 @@ function SetCursor(ACursor: HCURSOR): HCURSOR; override; function SetCursorPos(X, Y: Integer): Boolean; override; function SetFocus(Handle: HWND): HWND; override; function SetForegroundWindow(HWnd: HWND): boolean; override; +function SetMenu(AWindowHandle: HWND; AMenuHandle: HMENU): Boolean; override; function SetProp(Handle: hwnd; Str: PChar; Data: Pointer) : Boolean; override; function SetROP2(DC: HDC; Mode: Integer): Integer; override; function SetScrollInfo(Handle : HWND; SBStyle : Integer; ScrollInfo: TScrollInfo; bRedraw : Boolean): Integer; override;