This allows some relevant events, in particular ClientMessage with WM_TAKE_FOCUS and PropertyNotify for WM_STATUS updates to go through even when QS_POSTMESSAGE is not set. Before this change, if an application was not processing posted messages, it would fail to obtain focus, and also leave WM status updates pending.
Previously, use_take_focus was disabled on Proton by default because x11drv would fail to respond to TAKE_FOCUS events properly. We are now looking to drop this hack in favor of processing the relevant events.
From: Charlotte Pabst cpabst@codeweavers.com
--- dlls/winex11.drv/event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 428dcb7b8b7..b1797cea24a 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -309,7 +309,7 @@ static Bool filter_event( Display *display, XEvent *event, char *arg ) case ConfigureNotify: case PropertyNotify: case ClientMessage: - return (mask & QS_POSTMESSAGE) != 0; + return (mask & (QS_POSTMESSAGE | QS_SENDMESSAGE)) != 0; #ifdef GenericEvent case GenericEvent: #ifdef HAVE_X11_EXTENSIONS_XINPUT2_H
requesting a review from @rbernon since this patch is based on his advice
This merge request was approved by Rémi Bernon.