Module: wine Branch: master Commit: 19ad5bd598d603617341cbb2beec90bd69fa6349 URL: https://gitlab.winehq.org/wine/wine/-/commit/19ad5bd598d603617341cbb2beec90b...
Author: Rémi Bernon rbernon@codeweavers.com Date: Mon Dec 11 20:26:59 2023 +0100
server: Peek wine internal driver messages regardless of filter.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55774
---
dlls/win32u/spy.c | 1 - dlls/wineandroid.drv/android.h | 2 +- dlls/winemac.drv/macdrv.h | 4 ++-- dlls/winewayland.drv/waylanddrv.h | 6 +++--- dlls/winex11.drv/x11drv.h | 4 ++-- include/ntuser.h | 4 ++-- server/queue.c | 5 +++++ 7 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/dlls/win32u/spy.c b/dlls/win32u/spy.c index ddeaba2d96f..20a57803cb6 100644 --- a/dlls/win32u/spy.c +++ b/dlls/win32u/spy.c @@ -1139,7 +1139,6 @@ static const char * const WINEMessageTypeNames[SPY_MAX_WINEMSGNUM + 1] = "WM_WINE_SETACTIVEWINDOW", "WM_WINE_KEYBOARD_LL_HOOK", "WM_WINE_MOUSE_LL_HOOK", - "WM_WINE_CLIPCURSOR", "WM_WINE_UPDATEWINDOWSTATE", };
diff --git a/dlls/wineandroid.drv/android.h b/dlls/wineandroid.drv/android.h index 184fec8372b..e793d103788 100644 --- a/dlls/wineandroid.drv/android.h +++ b/dlls/wineandroid.drv/android.h @@ -125,7 +125,7 @@ extern MONITORINFOEXW default_monitor;
enum android_window_messages { - WM_ANDROID_REFRESH = 0x80001000, + WM_ANDROID_REFRESH = WM_WINE_FIRST_DRIVER_MSG, };
extern void init_gralloc( const struct hw_module_t *module ); diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h index e1dd1c61b3f..b9cd9fde2ed 100644 --- a/dlls/winemac.drv/macdrv.h +++ b/dlls/winemac.drv/macdrv.h @@ -91,10 +91,10 @@ extern BOOL macdrv_SetDeviceGammaRamp(PHYSDEV dev, LPVOID ramp); * Mac USER driver */
-/* Mac driver private messages, must be in the range 0x80001000..0x80001fff */ +/* Mac driver private messages */ enum macdrv_window_messages { - WM_MACDRV_SET_WIN_REGION = 0x80001000, + WM_MACDRV_SET_WIN_REGION = WM_WINE_FIRST_DRIVER_MSG, WM_MACDRV_RESET_DEVICE_METRICS, WM_MACDRV_DISPLAYCHANGE, WM_MACDRV_ACTIVATE_ON_FOLLOWING_FOCUS, diff --git a/dlls/winewayland.drv/waylanddrv.h b/dlls/winewayland.drv/waylanddrv.h index 5522d9df2d0..0883c43f1ff 100644 --- a/dlls/winewayland.drv/waylanddrv.h +++ b/dlls/winewayland.drv/waylanddrv.h @@ -59,9 +59,9 @@ extern struct wayland process_wayland;
enum wayland_window_message { - WM_WAYLAND_INIT_DISPLAY_DEVICES = 0x80001000, - WM_WAYLAND_CONFIGURE = 0x80001001, - WM_WAYLAND_SET_FOREGROUND = 0x80001002, + WM_WAYLAND_INIT_DISPLAY_DEVICES = WM_WINE_FIRST_DRIVER_MSG, + WM_WAYLAND_CONFIGURE, + WM_WAYLAND_SET_FOREGROUND, };
enum wayland_surface_config_state diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 9996b1f687d..c80e4b3d3c9 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -585,10 +585,10 @@ extern void (*pXFreeEventData)( Display *display, XEvent /*XGenericEventCookie*/
extern DWORD EVENT_x11_time_to_win32_time(Time time);
-/* X11 driver private messages, must be in the range 0x80001000..0x80001fff */ +/* X11 driver private messages */ enum x11drv_window_messages { - WM_X11DRV_UPDATE_CLIPBOARD = 0x80001000, + WM_X11DRV_UPDATE_CLIPBOARD = WM_WINE_FIRST_DRIVER_MSG, WM_X11DRV_SET_WIN_REGION, WM_X11DRV_DESKTOP_RESIZED, WM_X11DRV_DELETE_TAB, diff --git a/include/ntuser.h b/include/ntuser.h index dd19c57221e..f23249ace5a 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -488,10 +488,10 @@ enum wine_internal_message WM_WINE_SETACTIVEWINDOW, WM_WINE_KEYBOARD_LL_HOOK, WM_WINE_MOUSE_LL_HOOK, - WM_WINE_CLIPCURSOR, - WM_WINE_SETCURSOR, WM_WINE_UPDATEWINDOWSTATE, WM_WINE_FIRST_DRIVER_MSG = 0x80001000, /* range of messages reserved for the USER driver */ + WM_WINE_CLIPCURSOR = 0x80001ff0, /* internal driver notification messages */ + WM_WINE_SETCURSOR, WM_WINE_LAST_DRIVER_MSG = 0x80001fff };
diff --git a/server/queue.c b/server/queue.c index 0558bd111f9..9007438e082 100644 --- a/server/queue.c +++ b/server/queue.c @@ -2762,6 +2762,11 @@ DECL_HANDLER(get_message) get_hardware_message( current, req->hw_id, get_win, req->get_first, req->get_last, req->flags, reply )) return;
+ /* check for any internal driver message */ + if (get_hardware_message( current, req->hw_id, get_win, WM_WINE_FIRST_DRIVER_MSG, + WM_WINE_LAST_DRIVER_MSG, req->flags, reply )) + return; + /* now check for WM_PAINT */ if ((filter & QS_PAINT) && queue->paint_count &&