Sergey Guralnik : comctl32: Correct values passed in MCN_SELECT/ MCN_SELCHANGE notifications.

Alexandre Julliard julliard at winehq.org
Fri Aug 17 10:37:47 CDT 2012


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

Author: Sergey Guralnik <serhio at etersoft.ru>
Date:   Fri Aug 17 10:24:12 2012 +0400

comctl32: Correct values passed in MCN_SELECT/MCN_SELCHANGE notifications.

---

 dlls/comctl32/monthcal.c       |   17 +++++++++++++++--
 dlls/comctl32/tests/monthcal.c |    7 +++----
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index c5b6d91..f27eee3 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -185,7 +185,14 @@ static inline void MONTHCAL_NotifySelectionChange(const MONTHCAL_INFO *infoPtr)
     nmsc.nmhdr.idFrom   = GetWindowLongPtrW(infoPtr->hwndSelf, GWLP_ID);
     nmsc.nmhdr.code     = MCN_SELCHANGE;
     nmsc.stSelStart     = infoPtr->minSel;
-    nmsc.stSelEnd       = infoPtr->maxSel;
+    nmsc.stSelStart.wDayOfWeek = 0;
+    if(infoPtr->dwStyle & MCS_MULTISELECT){
+        nmsc.stSelEnd = infoPtr->maxSel;
+        nmsc.stSelEnd.wDayOfWeek = 0;
+    }
+    else
+        nmsc.stSelEnd = st_null;
+
     SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, nmsc.nmhdr.idFrom, (LPARAM)&nmsc);
 }
 
@@ -198,7 +205,13 @@ static inline void MONTHCAL_NotifySelect(const MONTHCAL_INFO *infoPtr)
     nmsc.nmhdr.idFrom   = GetWindowLongPtrW(infoPtr->hwndSelf, GWLP_ID);
     nmsc.nmhdr.code     = MCN_SELECT;
     nmsc.stSelStart     = infoPtr->minSel;
-    nmsc.stSelEnd       = infoPtr->maxSel;
+    nmsc.stSelStart.wDayOfWeek = 0;
+    if(infoPtr->dwStyle & MCS_MULTISELECT){
+        nmsc.stSelEnd = infoPtr->maxSel;
+        nmsc.stSelEnd.wDayOfWeek = 0;
+    }
+    else
+        nmsc.stSelEnd = st_null;
 
     SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, nmsc.nmhdr.idFrom, (LPARAM)&nmsc);
 }
diff --git a/dlls/comctl32/tests/monthcal.c b/dlls/comctl32/tests/monthcal.c
index 7bba895..1fed831 100644
--- a/dlls/comctl32/tests/monthcal.c
+++ b/dlls/comctl32/tests/monthcal.c
@@ -502,19 +502,18 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
 
             expect(st[0].wYear,  nmchg->stSelStart.wYear);
             expect(st[0].wMonth, nmchg->stSelStart.wMonth);
-            todo_wine expect(0,  nmchg->stSelStart.wDayOfWeek);
+            expect(0,            nmchg->stSelStart.wDayOfWeek);
             expect(st[0].wDay,   nmchg->stSelStart.wDay);
 
             if(is_multisel)
             {
               expect(st[1].wYear,  nmchg->stSelEnd.wYear);
               expect(st[1].wMonth, nmchg->stSelEnd.wMonth);
-              todo_wine expect(0,  nmchg->stSelEnd.wDayOfWeek);
+              expect(0,            nmchg->stSelEnd.wDayOfWeek);
               expect(st[1].wDay,   nmchg->stSelEnd.wDay);
             }
             else
-              todo_wine
-                ok(!(nmchg->stSelEnd.wYear | nmchg->stSelEnd.wMonth |
+              ok(!(nmchg->stSelEnd.wYear | nmchg->stSelEnd.wMonth |
                         nmchg->stSelEnd.wDayOfWeek | nmchg->stSelEnd.wDay |
                         nmchg->stSelEnd.wHour | nmchg->stSelEnd.wMinute |
                         nmchg->stSelEnd.wSecond | nmchg->stSelEnd.wMilliseconds),




More information about the wine-cvs mailing list