Nikolay Sivov : comctl32/monthcal: Fix today date box painting.

Alexandre Julliard julliard at winehq.org
Tue Sep 20 13:08:35 CDT 2011


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Sep 20 11:35:54 2011 +0400

comctl32/monthcal: Fix today date box painting.

---

 dlls/comctl32/monthcal.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index dfa3d6e..762a792 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -987,14 +987,20 @@ static void MONTHCAL_PaintTodayTitle(const MONTHCAL_INFO *infoPtr, HDC hdc, cons
 /* today mark + focus */
 static void MONTHCAL_PaintFocusAndCircle(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps)
 {
-  if((infoPtr->minSel.wMonth == infoPtr->todaysDate.wMonth) &&
-     (infoPtr->minSel.wYear  == infoPtr->todaysDate.wYear) &&
-    !(infoPtr->dwStyle & MCS_NOTODAYCIRCLE))
+  /* circle today date if only it's in fully visible month */
+  if (!(infoPtr->dwStyle & MCS_NOTODAYCIRCLE))
   {
-    MONTHCAL_CircleDay(infoPtr, hdc, &infoPtr->todaysDate);
+    INT i;
+
+    for (i = 0; i < MONTHCAL_GetCalCount(infoPtr); i++)
+      if (!MONTHCAL_CompareMonths(&infoPtr->todaysDate, &infoPtr->calendars[i].month))
+      {
+        MONTHCAL_CircleDay(infoPtr, hdc, &infoPtr->todaysDate);
+        break;
+      }
   }
 
-  if(!MONTHCAL_IsDateEqual(&infoPtr->focusedSel, &st_null))
+  if (!MONTHCAL_IsDateEqual(&infoPtr->focusedSel, &st_null))
   {
     RECT r;
     MONTHCAL_GetDayRect(infoPtr, &infoPtr->focusedSel, &r, -1);




More information about the wine-cvs mailing list