Module: wine Branch: master Commit: 71d4b5fcd4ae3f4fb107a7d2fbd876d6f7b9dd3d URL: http://source.winehq.org/git/wine.git/?a=commit;h=71d4b5fcd4ae3f4fb107a7d2fb... Author: Nikolay Sivov <bunglehead(a)gmail.com> Date: Wed Oct 7 01:20:48 2009 +0400 comctl32/monthcal: Optimize WM_LBUTTONUP handler. --- dlls/comctl32/monthcal.c | 22 +++++++++------------- 1 files changed, 9 insertions(+), 13 deletions(-) diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c index a2c7aaa..21c72d1 100644 --- a/dlls/comctl32/monthcal.c +++ b/dlls/comctl32/monthcal.c @@ -1,11 +1,12 @@ -/* Month calendar control - +/* + * Month calendar control * * Copyright 1998, 1999 Eric Kohl (ekohl(a)abo.rhein-zeitung.de) * Copyright 1999 Alex Priem (alexp(a)sci.kun.nl) * Copyright 1999 Chris Morgan <cmorgan(a)wpi.edu> and * James Abbatiello <abbeyj(a)wpi.edu> * Copyright 2000 Uwe Bonnes <bon(a)elektron.ikp.physik.tu-darmstadt.de> + * Copyright 2009 Nikolay Sivov * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -1788,16 +1789,19 @@ static LRESULT MONTHCAL_LButtonUp(MONTHCAL_INFO *infoPtr, LPARAM lParam) { NMHDR nmhdr; - BOOL redraw = FALSE; MCHITTESTINFO ht; DWORD hit; TRACE("\n"); if(infoPtr->status & (MC_PREVPRESSED | MC_NEXTPRESSED)) { + RECT *r; + KillTimer(infoPtr->hwndSelf, MC_PREVNEXTMONTHTIMER); + r = infoPtr->status & MC_PREVPRESSED ? &infoPtr->titlebtnprev : &infoPtr->titlebtnnext; infoPtr->status &= ~(MC_PREVPRESSED | MC_NEXTPRESSED); - redraw = TRUE; + + InvalidateRect(infoPtr->hwndSelf, r, FALSE); } ReleaseCapture(); @@ -1818,9 +1822,7 @@ MONTHCAL_LButtonUp(MONTHCAL_INFO *infoPtr, LPARAM lParam) infoPtr->status = MC_SEL_LBUTUP; MONTHCAL_SetDayFocus(infoPtr, NULL); - if((hit == MCHT_CALENDARDATENEXT) || - (hit == MCHT_CALENDARDATEPREV) || - (hit == MCHT_CALENDARDATE)) + if((hit & MCHT_CALENDARDATE) == MCHT_CALENDARDATE) { SYSTEMTIME sel = infoPtr->curSel; @@ -1839,14 +1841,8 @@ MONTHCAL_LButtonUp(MONTHCAL_INFO *infoPtr, LPARAM lParam) MONTHCAL_NotifySelectionChange(infoPtr); MONTHCAL_NotifySelect(infoPtr); - - return 0; } - /* redraw if necessary */ - if(redraw) - InvalidateRect(infoPtr->hwndSelf, NULL, FALSE); - return 0; }