Author: jimtabor
Date: Sat Jul 30 12:32:28 2016
New Revision: 72054

URL: http://svn.reactos.org/svn/reactos?rev=72054&view=rev
Log:
[NtUser]
- Fix hang while inputting mouse message. Fix CORE-9998.

Modified:
    trunk/reactos/win32ss/user/ntuser/msgqueue.c

Modified: trunk/reactos/win32ss/user/ntuser/msgqueue.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/msgqueue.c?rev=72054&r1=72053&r2=72054&view=diff
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/msgqueue.c        [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/msgqueue.c        [iso-8859-1] Sat Jul 30 
12:32:28 2016
@@ -1891,6 +1891,16 @@
     return 1;
 }
 
+/* check whether message is in the range of mouse messages */
+static inline BOOL is_mouse_message( UINT message )
+{
+    return ( //( message >= WM_NCMOUSEFIRST && message <= WM_NCMOUSELAST )   
|| This seems to break tests...
+             ( message >= WM_MOUSEFIRST   && message <= WM_MOUSELAST )     ||
+             ( message >= WM_XBUTTONDOWN  && message <= WM_XBUTTONDBLCLK ) ||
+             ( message >= WM_MBUTTONDOWN  && message <= WM_MBUTTONDBLCLK ) ||
+             ( message >= WM_LBUTTONDOWN  && message <= WM_RBUTTONDBLCLK ) );
+}
+
 BOOL APIENTRY
 co_MsqPeekHardwareMessage(IN PTHREADINFO pti,
                          IN BOOL Remove,
@@ -1946,7 +1956,7 @@
       if ( ( !Window || // 1
             ( Window == PWND_BOTTOM && CurrentMessage->Msg.hwnd == NULL ) || 
// 2
             ( Window != PWND_BOTTOM && Window->head.h == 
CurrentMessage->Msg.hwnd ) || // 3
-            ( CurrentMessage->Msg.message == WM_MOUSEMOVE ) ) && // Null 
window for mouse moves.
+            ( is_mouse_message(CurrentMessage->Msg.message) ) ) && // Null 
window for anything mouse.
             ( ( ( MsgFilterLow == 0 && MsgFilterHigh == 0 ) && 
CurrentMessage->QS_Flags & QSflags ) ||
               ( MsgFilterLow <= CurrentMessage->Msg.message && MsgFilterHigh 
>= CurrentMessage->Msg.message ) ) )
       {


Reply via email to