Dmitry Timoshkov : user32: Draw the whole button only if requested.
Module: wine Branch: master Commit: 8d54f582776d590b236e288f9ef8085bb221ccab URL: http://source.winehq.org/git/wine.git/?a=commit;h=8d54f582776d590b236e288f9e... Author: Dmitry Timoshkov <dmitry(a)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);
participants (1)
-
Alexandre Julliard