Ignore:
Timestamp:
Jan 31, 2012, 10:25:42 PM (14 years ago)
Author:
dmik
Message:

Make sure GetQueueStatus() correctly reports QS_KEY state.

Due to a bug in WinQueryQueueStatus(), QS_KEY would be
always set on return if the associated window is active, even
if there were no WM_CHAR messages actually in the queue.
This broke the newer Flash (see Flash #39 for details).

GetInputState() was also affected by this problem; it would always
return TRUE for active windows.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/windowmsg.cpp

    r21916 r21955  
    11151115//            queue since the last call to GetQueueStatus
    11161116//******************************************************************************
    1117 DWORD WIN32API GetQueueStatus( UINT flags)
     1117DWORD WIN32API GetQueueStatus(UINT flags)
    11181118{
    11191119 DWORD queueStatus;
    11201120
    1121     queueStatus = OSLibWinQueryQueueStatus();
     1121    queueStatus = OSLibWinQueryQueueStatus(flags);
    11221122
    11231123    dprintf(("USER32: GetQueueStatus %x returned %x", flags, queueStatus & MAKELONG(flags, flags)));
     
    11441144 BOOL  rc;
    11451145
    1146   queueStatus = OSLibWinQueryQueueStatus();
     1146  queueStatus = OSLibWinQueryQueueStatus(QS_INPUT);
    11471147
    11481148  rc = (queueStatus & (QS_KEY | QS_MOUSEBUTTON)) ? TRUE : FALSE;
Note: See TracChangeset for help on using the changeset viewer.