Piotr Caban : comctl32: Test TrackMouseEvent flags when LVS_EX_ONECLICKACTIVATE style is used.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Oct 7 10:00:48 CDT 2015


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Oct  6 16:25:15 2015 +0200

comctl32: Test TrackMouseEvent flags when LVS_EX_ONECLICKACTIVATE style is used.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>

---

 dlls/comctl32/tests/listview.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index 8573318..118b4a2 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -5745,11 +5745,28 @@ static void test_header_proc(void)
     DestroyWindow(hwnd);
 }
 
+static void flush_events(void)
+{
+    MSG msg;
+    int diff = 200;
+    int min_timeout = 100;
+    DWORD time = GetTickCount() + diff;
+
+    while (diff > 0)
+    {
+        if (MsgWaitForMultipleObjects( 0, NULL, FALSE, min_timeout, QS_ALLINPUT ) == WAIT_TIMEOUT) break;
+        while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
+        diff = time - GetTickCount();
+    }
+}
+
 static void test_oneclickactivate(void)
 {
+    TRACKMOUSEEVENT track;
     char item1[] = "item1";
     LVITEMA item;
     HWND hwnd, fg;
+    RECT rect;
     INT r;
 
     hwnd = CreateWindowExA(0, "SysListView32", "foo", WS_VISIBLE|WS_CHILD|LVS_LIST,
@@ -5775,6 +5792,18 @@ static void test_oneclickactivate(void)
     r = SendMessageA(hwnd, LVM_INSERTITEMA, 0, (LPARAM) &item);
     ok(r == 0, "should not fail\n");
 
+    GetWindowRect(hwnd, &rect);
+    SetCursorPos(rect.left+5, rect.top+5);
+    flush_events();
+    r = SendMessageA(hwnd, WM_MOUSEMOVE, MAKELONG(1, 1), 0);
+    expect(0, r);
+
+    track.cbSize = sizeof(track);
+    track.dwFlags = TME_QUERY;
+    _TrackMouseEvent(&track);
+    ok(track.hwndTrack == hwnd, "hwndTrack != hwnd\n");
+    ok(track.dwFlags == TME_LEAVE, "dwFlags = %x\n", track.dwFlags);
+
     r = SendMessageA(hwnd, LVM_GETSELECTEDCOUNT, 0, 0);
     expect(0, r);
     r = SendMessageA(hwnd, WM_MOUSEHOVER, MAKELONG(1, 1), 0);




More information about the wine-cvs mailing list