diff --git a/lcl/interfaces/cocoa/cocoawinapi.inc b/lcl/interfaces/cocoa/cocoawinapi.inc index 51c6a5f462..b1c3a68618 100644 --- a/lcl/interfaces/cocoa/cocoawinapi.inc +++ b/lcl/interfaces/cocoa/cocoawinapi.inc @@ -448,6 +448,12 @@ begin end; end; +function TCocoaWidgetSet.GetActiveWindow: HWND; +begin + // return the currect application active window + Result := HWND(NSApp.keyWindow); +end; + {------------------------------------------------------------------------------ function ShowWindow(hWnd: HWND; nCmdShow: Integer): Boolean; @@ -996,6 +1002,25 @@ begin {$ENDIF} end; +function TCocoaWidgetSet.GetForegroundWindow: HWND; +//var +// App: NSRunningApplication; +begin + // return the currect active window in the system +{ this is not possible because we can't access another application NSApplication + for App in NSWorkSpace.sharedWorkspace.runningApplications do + if App.isActive then + begin + Result := HWND(App.keyWindow); + Exit; + end; +} + if NSApp.isActive then + Result := HWND(NSApp.keyWindow) + else + Result := 0; +end; + function TCocoaWidgetSet.SelectObject(ADC: HDC; GDIObj: HGDIOBJ): HGDIOBJ; var dc: TCocoaContext; diff --git a/lcl/interfaces/cocoa/cocoawinapih.inc b/lcl/interfaces/cocoa/cocoawinapih.inc index f8279eb076..21902c23ff 100644 --- a/lcl/interfaces/cocoa/cocoawinapih.inc +++ b/lcl/interfaces/cocoa/cocoawinapih.inc @@ -87,10 +87,10 @@ function FillRect(DC: HDC; const Rect: TRect; Brush: HBRUSH): Boolean; override; function FillRgn(DC: HDC; RegionHnd: HRGN; hbr: HBRUSH): Bool; override; {function Frame(DC: HDC; const ARect: TRect): Integer; override; function Frame3d(DC: HDC; var ARect: TRect; const FrameWidth : integer; const Style : TBevelCut): Boolean; override; -function FrameRect(DC: HDC; const ARect: TRect; hBr: HBRUSH): Integer; override; +function FrameRect(DC: HDC; const ARect: TRect; hBr: HBRUSH): Integer; override;} -function GetActiveWindow : HWND; override; -function GetBitmapBits(Bitmap: HBITMAP; Count: Longint; Bits: Pointer): Longint; override; +function GetActiveWindow: HWND; override; +{function GetBitmapBits(Bitmap: HBITMAP; Count: Longint; Bits: Pointer): Longint; override; function GetCapture: HWND; override; function GetCaretPos(var lpPoint: TPoint): Boolean; override; function GetCaretRespondToFocus(handle: HWND; var ShowHideOnFocus: boolean): Boolean; override;} @@ -104,8 +104,9 @@ function GetDC(hWnd: HWND): HDC; override; function GetDeviceCaps(DC: HDC; Index: Integer): Integer; override; function GetDeviceSize(DC: HDC; var P: TPoint): Boolean; Override; function GetDIBits(DC: HDC; Bitmap: HBitmap; StartScan, NumScans: UINT; Bits: Pointer; var BitInfo: BitmapInfo; Usage: UINT): Integer; Override; -function GetFocus: HWND; override; -function GetKeyState(nVirtKey: Integer): Smallint; override;} +function GetFocus: HWND; override;} +function GetForegroundWindow: HWND; override; +{function GetKeyState(nVirtKey: Integer): Smallint; override;} function GetMonitorInfo(hMonitor: HMONITOR; lpmi: PMonitorInfo): Boolean; override; {function GetObject(GDIObj: HGDIOBJ; BufSize: Integer; Buf: Pointer): Integer; override;} function GetParent(Handle: HWND): HWND; override;