From 229d4e210999cb9b31baa7c66458cbd2a7d9706c Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Tue, 20 Sep 2011 11:35:54 +0400 Subject: [PATCH] comctl32/monthcal: Fix today date box painting. --- dlls/comctl32/monthcal.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c index dfa3d6e96dc..762a7926f28 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); -- 2.11.4.GIT