Akihiro Sagawa : winex11: Return more reliable value from X11DRV_MsgWaitForMultipleObjects.

Alexandre Julliard julliard at winehq.org
Thu Aug 25 10:39:37 CDT 2016


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

Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date:   Tue Aug 23 22:13:26 2016 +0900

winex11: Return more reliable value from X11DRV_MsgWaitForMultipleObjects.

After processing several X events, X11DRV_MsgWaitForMultipleObjects always
tells us that a new message is available. This is not true for some cases.

For instance, when we call DestroyWindow, the X queues DestroyEvent. Then,
X11DRV_MsgWaitForMultipleObjects handles the event only; none is posted or
sent as hwnd for destroyed window is unavailable. However, the function
states "new message is available" by returning count - 1 value.

This is an issue for CoWaitForMultipleHandles because it expects a new
message in the queue and consumes the message.

Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winex11.drv/clipboard.c |   6 ++-
 dlls/winex11.drv/event.c     | 115 ++++++++++++++++++++++++-------------------
 dlls/winex11.drv/keyboard.c  |  19 ++++---
 dlls/winex11.drv/mouse.c     |  43 +++++++++-------
 dlls/winex11.drv/window.c    |   5 +-
 dlls/winex11.drv/wintab.c    |  18 ++++---
 dlls/winex11.drv/x11drv.h    |  24 ++++-----
 7 files changed, 130 insertions(+), 100 deletions(-)

Diff:   http://source.winehq.org/git/wine.git/?a=commitdiff;h=ce7a98e95cd0226248675c5ed712c9acad30c4be



More information about the wine-cvs mailing list