From f71d89b2b35148bb62d29b99830e5d25acaf16a5 Mon Sep 17 00:00:00 2001 From: paul Date: Sat, 17 Jan 2009 10:41:01 +0000 Subject: [PATCH] lcl: fix owner drawn statusbar panels - don't skip TStatusPanel.Bevel - assign passed in the WM_DrawItem Message DC to the Canvas.Handle git-svn-id: trunk@18318 - --- lcl/include/statusbar.inc | 7 +++++-- lcl/interfaces/win32/win32wscomctrls.pp | 7 +++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lcl/include/statusbar.inc b/lcl/include/statusbar.inc index f252ce70b7..00a9652448 100644 --- a/lcl/include/statusbar.inc +++ b/lcl/include/statusbar.inc @@ -88,9 +88,12 @@ end; procedure TStatusBar.LMDrawItem(var Message: TLMDrawItems); begin - if assigned(FOnDrawPanel) then + if Assigned(FOnDrawPanel) then with Message.DrawItemStruct^ do - FOnDrawPanel(Self,Panels[itemID],rcItem); + begin + Canvas.Handle := _hDC; + FOnDrawPanel(Self, Panels[itemID], rcItem); + end; end; procedure TStatusBar.BoundsChanged; diff --git a/lcl/interfaces/win32/win32wscomctrls.pp b/lcl/interfaces/win32/win32wscomctrls.pp index c5d32d8eaf..662e94b948 100644 --- a/lcl/interfaces/win32/win32wscomctrls.pp +++ b/lcl/interfaces/win32/win32wscomctrls.pp @@ -270,10 +270,9 @@ begin taCenter: Text := #9 + Text; taRightJustify: Text := #9#9 + Text; end; - if StatusPanel.Style=psOwnerDraw then - WParam := SBT_OWNERDRAW - else - WParam := StatusBevelMap[StatusPanel.Bevel]; + WParam := StatusBevelMap[StatusPanel.Bevel]; + if StatusPanel.Style = psOwnerDraw then + WParam := WParam or SBT_OWNERDRAW; WParam := WParam or StatusPanel.Index; {$ifdef WindowsUnicodeSupport} if UnicodeEnabledOS then