From ce971206a0b806812e86003eddddd09d0e7019d3 Mon Sep 17 00:00:00 2001 From: tombo Date: Sun, 18 Nov 2007 14:34:24 +0000 Subject: [PATCH] Carbon intf: invalidate menu bar git-svn-id: trunk@12915 - --- lcl/interfaces/carbon/carboncanvas.pp | 25 ------------------------- lcl/interfaces/carbon/carbonmenus.pp | 2 ++ lcl/interfaces/carbon/carbonprivate.pp | 19 ++++++++++++++++--- 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/lcl/interfaces/carbon/carboncanvas.pp b/lcl/interfaces/carbon/carboncanvas.pp index 184ac3c6ac..8e21dfe991 100644 --- a/lcl/interfaces/carbon/carboncanvas.pp +++ b/lcl/interfaces/carbon/carboncanvas.pp @@ -169,7 +169,6 @@ type function GetSize: TPoint; override; public constructor Create(AOwner: TCarbonWidget); - procedure Reset; override; end; { TCarbonBitmapContext } @@ -1465,30 +1464,6 @@ begin Reset; end; -{------------------------------------------------------------------------------ - Method: TCarbonControlContext.Reset - - Resets the control context properties to defaults (pen, brush, ...) - ------------------------------------------------------------------------------} -procedure TCarbonControlContext.Reset; -begin - inherited Reset; - - if CGContext <> nil then - if CurrentBrush <> nil then // apply control background color - begin - if FOwner.LCLObject.Color <> clBtnFace then - CurrentBrush.SetColor(FOwner.LCLObject.Color, True) - else - CurrentBrush.SetColor(FOwner.LCLObject.Color, False); - - CurrentBrush.Apply(Self, False); - end; - - if FOwner.LCLObject.Font.Handle <> 0 then - CurrentFont := TCarbonFont(FOwner.LCLObject.Font.Handle); -end; - { TCarbonBitmapContext } {------------------------------------------------------------------------------ diff --git a/lcl/interfaces/carbon/carbonmenus.pp b/lcl/interfaces/carbon/carbonmenus.pp index c4d6e4501f..a6cc17ff4a 100644 --- a/lcl/interfaces/carbon/carbonmenus.pp +++ b/lcl/interfaces/carbon/carbonmenus.pp @@ -334,6 +334,8 @@ begin FRoot := True; OSError(SetRootMenu(Menu), Self, 'AttachToMenuBar', 'SetRootMenu'); + + InvalMenuBar; end; {------------------------------------------------------------------------------ diff --git a/lcl/interfaces/carbon/carbonprivate.pp b/lcl/interfaces/carbon/carbonprivate.pp index bfe3125452..afd05ef003 100644 --- a/lcl/interfaces/carbon/carbonprivate.pp +++ b/lcl/interfaces/carbon/carbonprivate.pp @@ -743,10 +743,23 @@ end; procedure TCarbonCustomControl.Draw; begin if Context <> nil then + with (Context as TCarbonDeviceContext) do begin - (Context as TCarbonDeviceContext).TextFractional := TextFractional; - if LCLObject.Color <> clBtnFace then - with (Context as TCarbonDeviceContext) do FillRect(GetClipRect, CurrentBrush); + if CGContext <> nil then + begin + if CurrentBrush <> nil then // apply control background color + begin + if LCLObject.Color <> clBtnFace then + CurrentBrush.SetColor(LCLObject.Color, True) + else + CurrentBrush.SetColor(LCLObject.Color, False); + + CurrentBrush.Apply(Context, False); + if LCLObject.Color <> clBtnFace then FillRect(GetClipRect, CurrentBrush); + end; + end; + + TextFractional := TextFractional; end; end;