Nikolay Sivov : comctl32/monthcal: Properly adjust day of week in MCM_SETCURSEL.

Alexandre Julliard julliard at winehq.org
Fri Sep 23 10:56:52 CDT 2011


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Sep 23 14:17:14 2011 +0400

comctl32/monthcal: Properly adjust day of week in MCM_SETCURSEL.

---

 dlls/comctl32/monthcal.c       |   11 +++++------
 dlls/comctl32/tests/monthcal.c |    6 +++---
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index 652bee8..d230f34 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -247,9 +247,7 @@ static inline BOOL MONTHCAL_IsDateEqual(const SYSTEMTIME *first, const SYSTEMTIM
 static BOOL MONTHCAL_ValidateDate(const SYSTEMTIME *time)
 {
   if(time->wMonth < 1 || time->wMonth > 12 ) return FALSE;
-  if(time->wDayOfWeek > 6) return FALSE;
-  if(time->wDay > MONTHCAL_MonthLength(time->wMonth, time->wYear))
-	  return FALSE;
+  if(time->wDay > MONTHCAL_MonthLength(time->wMonth, time->wYear)) return FALSE;
 
   return TRUE;
 }
@@ -1481,7 +1479,7 @@ MONTHCAL_GetCurSel(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *curSel)
 static LRESULT
 MONTHCAL_SetCurSel(MONTHCAL_INFO *infoPtr, SYSTEMTIME *curSel)
 {
-  SYSTEMTIME prev = infoPtr->minSel;
+  SYSTEMTIME prev = infoPtr->minSel, selection;
   INT diff;
   WORD day;
 
@@ -1511,8 +1509,9 @@ MONTHCAL_SetCurSel(MONTHCAL_INFO *infoPtr, SYSTEMTIME *curSel)
       MONTHCAL_GetMonth(&infoPtr->calendars[i].month, diff);
   }
 
-  infoPtr->minSel = *curSel;
-  infoPtr->maxSel = *curSel;
+  selection = *curSel;
+  MONTHCAL_CalculateDayOfWeek(&selection, TRUE);
+  infoPtr->minSel = infoPtr->maxSel = selection;
 
   /* if selection is still in current month, reduce rectangle */
   day = prev.wDay;
diff --git a/dlls/comctl32/tests/monthcal.c b/dlls/comctl32/tests/monthcal.c
index 454ea89..2686fb7 100644
--- a/dlls/comctl32/tests/monthcal.c
+++ b/dlls/comctl32/tests/monthcal.c
@@ -782,15 +782,15 @@ static void test_currdate(void)
     st_test.wMonth = 10;
     st_test.wDayOfWeek = 100;
     res = SendMessage(hwnd, MCM_SETCURSEL, 0, (LPARAM)&st_test);
-    todo_wine expect(1, res);
+    expect(1, res);
 
     memset(&st_test, 0, sizeof(st_test));
     res = SendMessage(hwnd, MCM_GETCURSEL, 0, (LPARAM)&st_test);
     expect(1, res);
     expect(2009, st_test.wYear);
-    todo_wine expect(7, st_test.wDay);
+    expect(7, st_test.wDay);
     expect(10, st_test.wMonth);
-    todo_wine expect(3, st_test.wDayOfWeek);
+    expect(3, st_test.wDayOfWeek);
 
     DestroyWindow(hwnd);
 }




More information about the wine-cvs mailing list