From ad804864bd15cbd1b8bfb74ad5d4ba1a84499d0b Mon Sep 17 00:00:00 2001 From: paul Date: Fri, 28 Sep 2012 08:32:38 +0000 Subject: [PATCH] cocoa: move ScreenContext to CocoaGDIObjects, always create it since it is used by any LCL application git-svn-id: trunk@38880 - --- lcl/interfaces/cocoa/cocoagdiobjects.pas | 5 +++++ lcl/interfaces/cocoa/cocoaint.pas | 3 --- lcl/interfaces/cocoa/cocoaobject.inc | 1 - lcl/interfaces/cocoa/cocoawinapi.inc | 7 ++----- lcl/interfaces/cocoa/cocoawscommon.pas | 1 + 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/lcl/interfaces/cocoa/cocoagdiobjects.pas b/lcl/interfaces/cocoa/cocoagdiobjects.pas index 4fa31d0ad2..8cd643fc40 100644 --- a/lcl/interfaces/cocoa/cocoagdiobjects.pas +++ b/lcl/interfaces/cocoa/cocoagdiobjects.pas @@ -435,6 +435,7 @@ var DefaultPen: TCocoaPen; DefaultFont: TCocoaFont; DefaultBitmap: TCocoaBitmap; + ScreenContext: TCocoaContext; function CheckDC(dc: HDC): TCocoaContext; function CheckDC(dc: HDC; Str: string): Boolean; @@ -1330,6 +1331,7 @@ begin FRegion := TCocoaRegion.CreateDefault; FRegion.AddRef; FClipRegion := FRegion; + FSavedDCList := nil; FText := TCocoaTextLayout.Create; FClipped := False; end; @@ -2591,10 +2593,13 @@ initialization DefaultPen := TCocoaPen.CreateDefault; DefaultFont := TCocoaFont.CreateDefault; DefaultBitmap := TCocoaBitmap.CreateDefault; + ScreenContext := TCocoaContext.Create; finalization + ScreenContext.Free; DefaultBrush.Free; DefaultPen.Free; DefaultFont.Free; DefaultBitmap.Free; + end. diff --git a/lcl/interfaces/cocoa/cocoaint.pas b/lcl/interfaces/cocoa/cocoaint.pas index c0ab522bbc..03dc4742e4 100644 --- a/lcl/interfaces/cocoa/cocoaint.pas +++ b/lcl/interfaces/cocoa/cocoaint.pas @@ -141,9 +141,6 @@ implementation uses CocoaCaret; -var - ScreenContext : TCocoaContext = nil; - // the implementation of the utility methods {$I cocoaobject.inc} // the implementation of the winapi compatibility methods diff --git a/lcl/interfaces/cocoa/cocoaobject.inc b/lcl/interfaces/cocoa/cocoaobject.inc index 9f6789b6a7..169dd8ada7 100644 --- a/lcl/interfaces/cocoa/cocoaobject.inc +++ b/lcl/interfaces/cocoa/cocoaobject.inc @@ -448,7 +448,6 @@ end; procedure InternalFinal; begin - if Assigned(ScreenContext) then ScreenContext.Free; end; diff --git a/lcl/interfaces/cocoa/cocoawinapi.inc b/lcl/interfaces/cocoa/cocoawinapi.inc index 4ca0d71db5..df8766879d 100644 --- a/lcl/interfaces/cocoa/cocoawinapi.inc +++ b/lcl/interfaces/cocoa/cocoawinapi.inc @@ -1303,11 +1303,8 @@ function TCocoaWidgetSet.GetDC(hWnd: HWND): HDC; var ctx: TCocoaContext; begin - if hWnd=0 then - begin - if not Assigned(ScreenContext) then ScreenContext:=TCocoaContext.Create; - Result:=HDC(ScreenContext); - end + if hWnd = 0 then + Result := HDC(ScreenContext) else begin // ToDo: Not finished yet diff --git a/lcl/interfaces/cocoa/cocoawscommon.pas b/lcl/interfaces/cocoa/cocoawscommon.pas index e7d05da428..ba0e028c79 100644 --- a/lcl/interfaces/cocoa/cocoawscommon.pas +++ b/lcl/interfaces/cocoa/cocoawscommon.pas @@ -786,6 +786,7 @@ end; function TLCLCommonCallback.DeliverMessage(var Msg): LRESULT; begin +// WriteLn('Delivering message to target: ', PtrInt(Target), ' ', Target.ClassName); Result := LCLMessageGlue.DeliverMessage(Target, Msg); end;