Module: wine Branch: master Commit: 8d54f582776d590b236e288f9ef8085bb221ccab URL: http://source.winehq.org/git/wine.git/?a=commit;h=8d54f582776d590b236e288f9e...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Thu Jul 23 19:44:13 2009 +0900
user32: Draw the whole button only if requested.
---
dlls/user32/button.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/user32/button.c b/dlls/user32/button.c index a61a4e7..1681949 100644 --- a/dlls/user32/button.c +++ b/dlls/user32/button.c @@ -826,6 +826,9 @@ static void PB_Paint( HWND hwnd, HDC hDC, UINT action ) hOldBrush = SelectObject(hDC,GetSysColorBrush(COLOR_BTNFACE)); oldBkMode = SetBkMode(hDC, TRANSPARENT);
+ /* completely skip the drawing if only focus has changed */ + if (action == ODA_FOCUS) goto draw_focus; + if (get_button_type(style) == BS_DEFPUSHBUTTON) { Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom); @@ -869,7 +872,9 @@ static void PB_Paint( HWND hwnd, HDC hDC, UINT action )
SetTextColor( hDC, oldTxtColor );
- if (state & BUTTON_HASFOCUS) +draw_focus: + if ((action == ODA_FOCUS) || + ((action == ODA_DRAWENTIRE) && (state & BUTTON_HASFOCUS))) { InflateRect( &focus_rect, -1, -1 ); IntersectRect(&focus_rect, &focus_rect, &rc);