[PATCH 4/7] Optimize WM_LBUTTONUP handler

Nikolay Sivov bunglehead at gmail.com
Tue Oct 6 16:20:48 CDT 2009


---
 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 at abo.rhein-zeitung.de)
  * Copyright 1999 Alex Priem (alexp at sci.kun.nl)
  * Copyright 1999 Chris Morgan <cmorgan at wpi.edu> and
  *		  James Abbatiello <abbeyj at wpi.edu>
  * Copyright 2000 Uwe Bonnes <bon at 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;
 }
 
-- 
1.5.6.5


--=-jvp7Y8wpxDbqv8ZDNGJD--




More information about the wine-patches mailing list