Dmitry Timoshkov : user32: Make sure to setup clipping before any painting is done.

Alexandre Julliard julliard at winehq.org
Wed Dec 19 06:58:26 CST 2007


Module: wine
Branch: master
Commit: 9e3ab87a9c2cf5219e721c122a176d5fa9cae817
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9e3ab87a9c2cf5219e721c122a176d5fa9cae817

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Wed Dec 19 12:56:03 2007 +0800

user32: Make sure to setup clipping before any painting is done.

---

 dlls/user32/button.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/dlls/user32/button.c b/dlls/user32/button.c
index d6ee30c..74720a0 100644
--- a/dlls/user32/button.c
+++ b/dlls/user32/button.c
@@ -903,6 +903,7 @@ static void CB_Paint( HWND hwnd, HDC hDC, UINT action )
     if (!hBrush) /* did the app forget to call defwindowproc ? */
         hBrush = (HBRUSH)DefWindowProcW(parent, WM_CTLCOLORSTATIC,
 					(WPARAM)hDC, (LPARAM)hwnd );
+    setup_clipping( hwnd, hDC );
 
     if (style & BS_LEFTTEXT)
     {
@@ -916,7 +917,7 @@ static void CB_Paint( HWND hwnd, HDC hDC, UINT action )
         rtext.left += checkBoxWidth + 4;
         rbox.right = checkBoxWidth;
     }
- 
+
     /* Since WM_ERASEBKGND does nothing, first prepare background */
     if (action == ODA_SELECT) FillRect( hDC, &rbox, hBrush );
     if (action == ODA_DRAWENTIRE) FillRect( hDC, &client, hBrush );
@@ -982,8 +983,6 @@ static void CB_Paint( HWND hwnd, HDC hDC, UINT action )
     if (dtFlags == (UINT)-1L) /* Noting to draw */
 	return;
 
-    setup_clipping( hwnd, hDC );
-
     if (action == ODA_DRAWENTIRE)
 	BUTTON_DrawLabel(hwnd, hDC, dtFlags, &rtext);
 
@@ -1044,6 +1043,7 @@ static void GB_Paint( HWND hwnd, HDC hDC, UINT action )
     if (!hbr) /* did the app forget to call defwindowproc ? */
         hbr = (HBRUSH)DefWindowProcW(parent, WM_CTLCOLORSTATIC,
 				     (WPARAM)hDC, (LPARAM)hwnd);
+    setup_clipping( hwnd, hDC );
 
     GetClientRect( hwnd, &rc);
     rcFrame = rc;
@@ -1058,8 +1058,6 @@ static void GB_Paint( HWND hwnd, HDC hDC, UINT action )
     if (dtFlags == (UINT)-1L)
        return;
 
-    setup_clipping( hwnd, hDC );
-
     /* Because buttons have CS_PARENTDC class style, there is a chance
      * that label will be drawn out of client rect.
      * But Windows doesn't clip label's rect, so do I.




More information about the wine-cvs mailing list