Alexandre Julliard : user32/tests: Flush events during the mouse button tests.

Alexandre Julliard julliard at winehq.org
Fri Mar 21 07:47:01 CDT 2008


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Mar 21 11:29:18 2008 +0100

user32/tests: Flush events during the mouse button tests.

---

 dlls/user32/tests/win.c |   54 +++++++++++++++++++++++++---------------------
 1 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index 2c4d113..f7df8b5 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -59,7 +59,7 @@ static DWORD our_pid;
 #define COUNTOF(arr) (sizeof(arr)/sizeof(arr[0]))
 
 /* try to make sure pending X events have been processed before continuing */
-static void flush_events(void)
+static void flush_events( BOOL remove_messages )
 {
     MSG msg;
     int diff = 200;
@@ -69,7 +69,8 @@ static void flush_events(void)
     while (diff > 0)
     {
         if (MsgWaitForMultipleObjects( 0, NULL, FALSE, min_timeout, QS_ALLINPUT ) == WAIT_TIMEOUT) break;
-        while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessage( &msg );
+        if (remove_messages)
+            while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessage( &msg );
         diff = time - GetTickCount();
         min_timeout = 10;
     }
@@ -631,7 +632,10 @@ static LRESULT WINAPI main_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPAR
 	}
         case WM_COMMAND:
             if (test_lbuttondown_flag)
+            {
                 ShowWindow((HWND)wparam, SW_SHOW);
+                flush_events( FALSE );
+            }
             break;
     }
 
@@ -2546,14 +2550,14 @@ static void test_keyboard_input(HWND hwnd)
 
     ShowWindow(hwnd, SW_SHOW);
     UpdateWindow(hwnd);
-    flush_events();
+    flush_events( TRUE );
 
     ok(GetActiveWindow() == hwnd, "wrong active window %p\n", GetActiveWindow());
 
     SetFocus(hwnd);
     ok(GetFocus() == hwnd, "wrong focus window %p\n", GetFocus());
 
-    flush_events();
+    flush_events( TRUE );
 
     PostMessageA(hwnd, WM_KEYDOWN, 0, 0);
     ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
@@ -2580,7 +2584,7 @@ static void test_keyboard_input(HWND hwnd)
     SetFocus(0);
     ok(GetFocus() == 0, "wrong focus window %p\n", GetFocus());
 
-    flush_events();
+    flush_events( TRUE );
 
     PostMessageA(hwnd, WM_KEYDOWN, 0, 0);
     ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
@@ -2639,7 +2643,7 @@ static void test_mouse_input(HWND hwnd)
     GetCursorPos(&pt);
     ok(x == pt.x && y == pt.y, "wrong cursor pos (%d,%d), expected (%d,%d)\n", pt.x, pt.y, x, y);
 
-    flush_events();
+    flush_events( TRUE );
 
     /* Check that setting the same position will generate WM_MOUSEMOVE */
     SetCursorPos(x, y);
@@ -2652,7 +2656,7 @@ static void test_mouse_input(HWND hwnd)
      * otherwise it won't generate relative mouse movements below.
      */
     mouse_event(MOUSEEVENTF_MOVE, -1, -1, 0, 0);
-    flush_events();
+    flush_events( TRUE );
 
     msg.message = 0;
     mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0);
@@ -2668,20 +2672,20 @@ static void test_mouse_input(HWND hwnd)
     ShowWindow(popup, SW_HIDE);
     ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
     ok(msg.hwnd == hwnd && msg.message == WM_MOUSEMOVE, "hwnd %p message %04x\n", msg.hwnd, msg.message);
-    flush_events();
+    flush_events( TRUE );
 
     mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0);
     ShowWindow(hwnd, SW_HIDE);
     ret = PeekMessageA(&msg, 0, 0, 0, PM_REMOVE);
     ok( !ret, "message %04x available\n", msg.message);
-    flush_events();
+    flush_events( TRUE );
 
     /* test mouse clicks */
 
     ShowWindow(hwnd, SW_SHOW);
-    flush_events();
+    flush_events( TRUE );
     ShowWindow(popup, SW_SHOW);
-    flush_events();
+    flush_events( TRUE );
 
     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
@@ -2720,7 +2724,7 @@ static void test_mouse_input(HWND hwnd)
     ok(!ret, "message %04x available\n", msg.message);
 
     ShowWindow(popup, SW_HIDE);
-    flush_events();
+    flush_events( TRUE );
 
     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
@@ -2777,7 +2781,7 @@ static void test_mouse_input(HWND hwnd)
     TEST_MOUSEACTIVATE(HTHELP,MA_ACTIVATE);
 
     /* Clear any messages left behind by WM_MOUSEACTIVATE tests */
-    flush_events();
+    flush_events( TRUE );
 
     DestroyWindow(popup);
 }
@@ -3031,7 +3035,7 @@ static void check_window_style(DWORD dwStyleIn, DWORD dwExStyleIn, DWORD dwStyle
                     dwStyleIn, 0, 0, 0, 0, hwndParent, NULL, NULL, &ss);
     assert(hwnd);
 
-    flush_events();
+    flush_events( TRUE );
 
     dwActualStyle = GetWindowLong(hwnd, GWL_STYLE);
     dwActualExStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
@@ -3256,7 +3260,7 @@ static void test_scrolldc( HWND parent)
             25, 50, 100, 100, parent, 0, 0, NULL);
     ShowWindow( parent, SW_SHOW);
     UpdateWindow( parent);
-    flush_events();
+    flush_events( TRUE );
     GetClientRect( hwnd1, &rc);
     hdc = GetDC( hwnd1);
     /* paint the upper half of the window black */
@@ -3691,47 +3695,47 @@ static void test_csparentdc(void)
    ShowWindow(hwndMain, SW_SHOW);
    ShowWindow(hwnd1, SW_SHOW);
    ShowWindow(hwnd2, SW_SHOW);
-   flush_events();
+   flush_events( TRUE );
 
    zero_parentdc_test(&test_answer);
    InvalidateRect(hwndMain, NULL, TRUE);
-   flush_events();
+   flush_events( TRUE );
    parentdc_ok(test1, test_answer);
 
    zero_parentdc_test(&test_answer);
    SetRect(&rc, 0, 0, 50, 50);
    InvalidateRect(hwndMain, &rc, TRUE);
-   flush_events();
+   flush_events( TRUE );
    parentdc_ok(test2, test_answer);
 
    zero_parentdc_test(&test_answer);
    SetRect(&rc, 0, 0, 10, 10);
    InvalidateRect(hwndMain, &rc, TRUE);
-   flush_events();
+   flush_events( TRUE );
    parentdc_ok(test3, test_answer);
 
    zero_parentdc_test(&test_answer);
    SetRect(&rc, 40, 40, 50, 50);
    InvalidateRect(hwndMain, &rc, TRUE);
-   flush_events();
+   flush_events( TRUE );
    parentdc_ok(test4, test_answer);
 
    zero_parentdc_test(&test_answer);
    SetRect(&rc, 20, 20, 60, 60);
    InvalidateRect(hwndMain, &rc, TRUE);
-   flush_events();
+   flush_events( TRUE );
    parentdc_ok(test5, test_answer);
 
    zero_parentdc_test(&test_answer);
    SetRect(&rc, 0, 0, 10, 10);
    InvalidateRect(hwnd1, &rc, TRUE);
-   flush_events();
+   flush_events( TRUE );
    parentdc_ok(test6, test_answer);
 
    zero_parentdc_test(&test_answer);
    SetRect(&rc, -5, -5, 65, 65);
    InvalidateRect(hwnd1, &rc, TRUE);
-   flush_events();
+   flush_events( TRUE );
    parentdc_ok(test7, test_answer);
 
    DestroyWindow(hwndMain);
@@ -4465,7 +4469,7 @@ static void test_GetUpdateRect(void)
 
     ShowWindow(hgrandparent, SW_SHOW);
     UpdateWindow(hgrandparent);
-    flush_events();
+    flush_events( TRUE );
 
     ShowWindow(hchild, SW_HIDE);
     SetRect(&rc2, 0, 0, 0, 0);
@@ -4525,7 +4529,7 @@ static void test_GetUpdateRect(void)
 
     ShowWindow(hgrandparent, SW_SHOW);
     UpdateWindow(hgrandparent);
-    flush_events();
+    flush_events( TRUE );
 
     ret = GetUpdateRect(hgrandparent, &rc1, FALSE);
     ok(!ret, "GetUpdateRect returned not empty region\n");




More information about the wine-cvs mailing list