Nikolay Sivov : comctl32/monthcal: Don't redraw if date didn' t change on MCM_SETTODAY.

Alexandre Julliard julliard at winehq.org
Fri Sep 25 10:24:47 CDT 2009


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

Author: Nikolay Sivov <bunglehead at gmail.com>
Date:   Fri Sep 25 03:32:18 2009 +0400

comctl32/monthcal: Don't redraw if date didn't change on MCM_SETTODAY.

---

 dlls/comctl32/monthcal.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index aa4b35c..5cbd9aa 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -158,6 +158,12 @@ int MONTHCAL_MonthLength(int month, int year)
   }
 }
 
+/* compares timestamps using date part only */
+static inline BOOL MONTHCAL_IsDateEqual(const SYSTEMTIME *first, const SYSTEMTIME *second)
+{
+  return (first->wYear == second->wYear) && (first->wMonth == second->wMonth) &&
+         (first->wDay  == second->wDay);
+}
 
 /* make sure that time is valid */
 static int MONTHCAL_ValidateTime(SYSTEMTIME time)
@@ -1093,6 +1099,9 @@ MONTHCAL_SetToday(MONTHCAL_INFO *infoPtr, SYSTEMTIME *today)
   TRACE("%p\n", today);
 
   if(!today) return FALSE;
+
+  if(MONTHCAL_IsDateEqual(today, &infoPtr->todaysDate)) return TRUE;
+
   MONTHCAL_CopyTime(today, &infoPtr->todaysDate);
   InvalidateRect(infoPtr->hwndSelf, NULL, FALSE);
   return TRUE;




More information about the wine-cvs mailing list