From fa5989b7aaf14a083fa60e0ffc5c3ad833c8e88d Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 23 Dec 2021 10:22:27 +1100 Subject: [PATCH] Rebase against d03984709d87d6eaa0e2e7746f0db5d8fdf81b5a. --- patches/patchinstall.sh | 2 +- ...-relative-RawMotion-events-unprocess.patch | 16 +++---- ...-Split-XInput2-thread-initialization.patch | 28 +++++------ ...ort-XInput2-events-for-individual-wi.patch | 48 +++++++++---------- ...dvertise-XInput2-version-2.1-support.patch | 42 ++++++++-------- staging/upstream-commit | 2 +- 6 files changed, 68 insertions(+), 70 deletions(-) diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 0db850ba..7a96a0d6 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "2f5f8b4bd4cb5771223d1ee96a55002d18ad01eb" + echo "d03984709d87d6eaa0e2e7746f0db5d8fdf81b5a" } # Show version information diff --git a/patches/user32-rawinput-mouse-experimental/0006-winex11.drv-Send-relative-RawMotion-events-unprocess.patch b/patches/user32-rawinput-mouse-experimental/0006-winex11.drv-Send-relative-RawMotion-events-unprocess.patch index 4ae8eea8..6bb3b059 100644 --- a/patches/user32-rawinput-mouse-experimental/0006-winex11.drv-Send-relative-RawMotion-events-unprocess.patch +++ b/patches/user32-rawinput-mouse-experimental/0006-winex11.drv-Send-relative-RawMotion-events-unprocess.patch @@ -1,4 +1,4 @@ -From df55865a000b3443f1948cdb8449cd33e049840b Mon Sep 17 00:00:00 2001 +From cc3472938f76b5db50ea86f854e153fd71795b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 25 Oct 2021 11:48:00 +0200 Subject: [PATCH] winex11.drv: Send relative RawMotion events unprocessed. @@ -13,11 +13,11 @@ This does not support mixed relative/absolute X/Y axis. 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c -index e6a2266855a..ea561811097 100644 +index 727ba13bc31..fdf8eca93dd 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c -@@ -750,12 +750,12 @@ static void map_event_coords( HWND hwnd, Window window, Window event_root, int x - input->u.mi.dy = pt.y; +@@ -1940,12 +1940,12 @@ static BOOL X11DRV_DeviceChanged( XGenericEventCookie *xev ) + return TRUE; } -static BOOL map_raw_event_coords( XIRawEvent *event, INPUT *input ) @@ -32,7 +32,7 @@ index e6a2266855a..ea561811097 100644 RECT virtual_rect; int i; -@@ -784,33 +784,35 @@ static BOOL map_raw_event_coords( XIRawEvent *event, INPUT *input ) +@@ -1974,33 +1974,35 @@ static BOOL map_raw_event_coords( XIRawEvent *event, INPUT *input ) if (!XIMaskIsSet( event->valuators.mask, i )) continue; if (i == x->number) { @@ -74,7 +74,7 @@ index e6a2266855a..ea561811097 100644 return TRUE; } -@@ -2025,7 +2027,7 @@ static BOOL X11DRV_RawMotion( XGenericEventCookie *xev ) +@@ -2027,7 +2029,7 @@ static BOOL X11DRV_RawMotion( XGenericEventCookie *xev ) input.u.mi.dwExtraInfo = 0; input.u.mi.dx = 0; input.u.mi.dy = 0; @@ -83,7 +83,7 @@ index e6a2266855a..ea561811097 100644 if (!thread_data->xi2_rawinput_only) __wine_send_input( 0, &input, NULL ); -@@ -2039,8 +2041,6 @@ static BOOL X11DRV_RawMotion( XGenericEventCookie *xev ) +@@ -2041,8 +2043,6 @@ static BOOL X11DRV_RawMotion( XGenericEventCookie *xev ) rawinput.data.mouse.ulRawButtons = 0; rawinput.data.mouse.u.usButtonData = 0; rawinput.data.mouse.u.usButtonFlags = 0; @@ -93,5 +93,5 @@ index e6a2266855a..ea561811097 100644 input.type = INPUT_HARDWARE; -- -2.33.0 +2.34.1 diff --git a/patches/user32-rawinput-mouse/0001-winex11.drv-Split-XInput2-thread-initialization.patch b/patches/user32-rawinput-mouse/0001-winex11.drv-Split-XInput2-thread-initialization.patch index 10c61d03..48b62ff3 100644 --- a/patches/user32-rawinput-mouse/0001-winex11.drv-Split-XInput2-thread-initialization.patch +++ b/patches/user32-rawinput-mouse/0001-winex11.drv-Split-XInput2-thread-initialization.patch @@ -1,7 +1,7 @@ -From b4d1ea44dd7f2201ba7d02eb171ee2ddb4013fe5 Mon Sep 17 00:00:00 2001 +From 05d2f03034c4bd2cc97f22c67e7bd9de3c3f710b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Fri, 17 Jan 2020 16:33:11 +0100 -Subject: [PATCH 1/8] winex11.drv: Split XInput2 thread initialization. +Subject: [PATCH] winex11.drv: Split XInput2 thread initialization. And rename the library and function loader to x11drv_xinput_load. --- @@ -11,11 +11,11 @@ And rename the library and function loader to x11drv_xinput_load. 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c -index 8cc30f0736d..a299944613e 100644 +index 51a6828f10c..121f42eb541 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c -@@ -279,6 +279,32 @@ static void update_relative_valuators(XIAnyClassInfo **valuators, int n_valuator - #endif +@@ -277,6 +277,32 @@ static void update_relative_valuators(XIAnyClassInfo **valuators, int n_valuator + } +/*********************************************************************** @@ -47,7 +47,7 @@ index 8cc30f0736d..a299944613e 100644 /*********************************************************************** * enable_xinput2 */ -@@ -291,19 +317,9 @@ static void enable_xinput2(void) +@@ -288,19 +314,9 @@ static void enable_xinput2(void) unsigned char mask_bits[XIMaskLen(XI_LASTEVENT)]; int count; @@ -69,7 +69,7 @@ index 8cc30f0736d..a299944613e 100644 if (!pXIGetClientPointer( data->display, None, &data->xi2_core_pointer )) return; mask.mask = mask_bits; -@@ -343,9 +359,9 @@ static void disable_xinput2(void) +@@ -341,9 +357,9 @@ static void disable_xinput2(void) struct x11drv_thread_data *data = x11drv_thread_data(); XIEventMask mask; @@ -80,7 +80,7 @@ index 8cc30f0736d..a299944613e 100644 data->xi2_state = xi_disabled; mask.mask = NULL; -@@ -1919,9 +1935,9 @@ static BOOL X11DRV_RawMotion( XGenericEventCookie *xev ) +@@ -1921,9 +1937,9 @@ static BOOL X11DRV_RawMotion( XGenericEventCookie *xev ) /*********************************************************************** @@ -93,10 +93,10 @@ index 8cc30f0736d..a299944613e 100644 #if defined(SONAME_LIBXI) && defined(HAVE_X11_EXTENSIONS_XINPUT2_H) int event, error; diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h -index d384a8a68c0..2f14c3f7cea 100644 +index 8bcc204db9b..3f3e386ea4a 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h -@@ -196,7 +196,8 @@ extern BOOL CDECL X11DRV_UnrealizePalette( HPALETTE hpal ) DECLSPEC_HIDDEN; +@@ -247,7 +247,8 @@ extern void CDECL X11DRV_ThreadDetach(void) DECLSPEC_HIDDEN; /* X11 driver internal functions */ extern void X11DRV_Xcursor_Init(void) DECLSPEC_HIDDEN; @@ -107,10 +107,10 @@ index d384a8a68c0..2f14c3f7cea 100644 extern DWORD copy_image_bits( BITMAPINFO *info, BOOL is_r8g8b8, XImage *image, const struct gdi_image_bits *src_bits, struct gdi_image_bits *dst_bits, diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c -index bd21afc8174..98f57383bc2 100644 +index 32beb84a009..2e083e322ec 100644 --- a/dlls/winex11.drv/x11drv_main.c +++ b/dlls/winex11.drv/x11drv_main.c -@@ -623,7 +623,7 @@ static BOOL process_attach(void) +@@ -619,7 +619,7 @@ static BOOL process_attach(void) #ifdef SONAME_LIBXCOMPOSITE X11DRV_XComposite_Init(); #endif @@ -119,7 +119,7 @@ index bd21afc8174..98f57383bc2 100644 #ifdef HAVE_XKB if (use_xkb) use_xkb = XkbUseExtension( gdi_display, NULL, NULL ); -@@ -716,6 +716,8 @@ struct x11drv_thread_data *x11drv_init_thread_data(void) +@@ -713,6 +713,8 @@ struct x11drv_thread_data *x11drv_init_thread_data(void) if (use_xim) X11DRV_SetupXIM(); @@ -129,5 +129,5 @@ index bd21afc8174..98f57383bc2 100644 } -- -2.33.0 +2.34.1 diff --git a/patches/user32-rawinput-mouse/0002-winex11.drv-Support-XInput2-events-for-individual-wi.patch b/patches/user32-rawinput-mouse/0002-winex11.drv-Support-XInput2-events-for-individual-wi.patch index d0bedbf7..9f11e259 100644 --- a/patches/user32-rawinput-mouse/0002-winex11.drv-Support-XInput2-events-for-individual-wi.patch +++ b/patches/user32-rawinput-mouse/0002-winex11.drv-Support-XInput2-events-for-individual-wi.patch @@ -1,8 +1,7 @@ -From ad9aab54712604c45c75262b7f7a984bc1a756cd Mon Sep 17 00:00:00 2001 +From e880574bf3be3467af6238cdb020e593878e2dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Thu, 23 Jan 2020 11:00:19 +0100 -Subject: [PATCH 2/8] winex11.drv: Support XInput2 events for individual - windows. +Subject: [PATCH] winex11.drv: Support XInput2 events for individual windows. This will allow us to listen to the XInput version of several events, which can bring additional information. @@ -15,7 +14,7 @@ which can bring additional information. 5 files changed, 65 insertions(+), 17 deletions(-) diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c -index 71b3a0a5a27..f90730b9fc5 100644 +index 0ac538d06ed..482b9c2c94d 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c @@ -358,6 +358,7 @@ BOOL CDECL X11DRV_create_desktop( UINT width, UINT height ) @@ -27,10 +26,10 @@ index 71b3a0a5a27..f90730b9fc5 100644 X11DRV_init_desktop( win, width, height ); diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c -index 1772a27c48b..bc007bea1d6 100644 +index 170111e9c28..bbb39135d88 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c -@@ -245,6 +245,13 @@ static Bool filter_event( Display *display, XEvent *event, char *arg ) +@@ -238,6 +238,13 @@ static Bool filter_event( Display *display, XEvent *event, char *arg ) return (mask & QS_MOUSEBUTTON) != 0; #ifdef GenericEvent case GenericEvent: @@ -45,10 +44,10 @@ index 1772a27c48b..bc007bea1d6 100644 case MotionNotify: case EnterNotify: diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c -index a299944613e..04760ad3938 100644 +index 121f42eb541..27a1e326cc2 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c -@@ -306,21 +306,33 @@ void x11drv_xinput_init(void) +@@ -304,20 +304,32 @@ void x11drv_xinput_init(void) /*********************************************************************** @@ -58,7 +57,6 @@ index a299944613e..04760ad3938 100644 -static void enable_xinput2(void) +void x11drv_xinput_enable( Display *display, Window window, long event_mask ) { - #ifdef HAVE_X11_EXTENSIONS_XINPUT2_H struct x11drv_thread_data *data = x11drv_thread_data(); XIEventMask mask; XIDeviceInfo *pointer_info; @@ -87,7 +85,7 @@ index a299944613e..04760ad3938 100644 mask.mask = mask_bits; mask.mask_len = sizeof(mask_bits); -@@ -330,8 +342,9 @@ static void enable_xinput2(void) +@@ -327,8 +339,9 @@ static void enable_xinput2(void) XISetMask( mask_bits, XI_RawMotion ); XISetMask( mask_bits, XI_ButtonPress ); @@ -98,7 +96,7 @@ index a299944613e..04760ad3938 100644 pointer_info = pXIQueryDevice( data->display, data->xi2_core_pointer, &count ); update_relative_valuators( pointer_info->classes, pointer_info->num_classes ); pXIFreeDeviceInfo( pointer_info ); -@@ -340,7 +353,7 @@ static void enable_xinput2(void) +@@ -337,7 +350,7 @@ static void enable_xinput2(void) * no XI_DeviceChanged events happened. If any hierarchy change occurred that * might be relevant here (eg. user switching mice after (un)plugging), a * XI_DeviceChanged event will point us to the right slave. So this list is @@ -107,8 +105,8 @@ index a299944613e..04760ad3938 100644 */ if (data->xi2_devices) pXIFreeDeviceInfo( data->xi2_devices ); data->xi2_devices = pXIQueryDevice( data->display, XIAllDevices, &data->xi2_device_count ); -@@ -351,24 +364,37 @@ static void enable_xinput2(void) - } +@@ -349,24 +362,37 @@ static void enable_xinput2(void) + #endif /*********************************************************************** - * disable_xinput2 @@ -151,7 +149,7 @@ index a299944613e..04760ad3938 100644 pXIFreeDeviceInfo( data->xi2_devices ); data->x_valuator.number = -1; data->y_valuator.number = -1; -@@ -377,6 +403,7 @@ static void disable_xinput2(void) +@@ -375,6 +401,7 @@ static void disable_xinput2(void) data->xi2_devices = NULL; data->xi2_core_pointer = 0; data->xi2_current_slave = 0; @@ -159,7 +157,7 @@ index a299944613e..04760ad3938 100644 #endif } -@@ -418,7 +445,7 @@ static BOOL grab_clipping_window( const RECT *clip ) +@@ -417,7 +444,7 @@ static BOOL grab_clipping_window( const RECT *clip ) } /* enable XInput2 unless we are already clipping */ @@ -168,7 +166,7 @@ index a299944613e..04760ad3938 100644 if (data->xi2_state != xi_enabled) { -@@ -448,7 +475,7 @@ static BOOL grab_clipping_window( const RECT *clip ) +@@ -447,7 +474,7 @@ static BOOL grab_clipping_window( const RECT *clip ) if (!clipping_cursor) { @@ -177,7 +175,7 @@ index a299944613e..04760ad3938 100644 DestroyWindow( msg_hwnd ); return FALSE; } -@@ -527,7 +554,7 @@ LRESULT clip_cursor_notify( HWND hwnd, HWND prev_clip_hwnd, HWND new_clip_hwnd ) +@@ -530,7 +557,7 @@ LRESULT clip_cursor_notify( HWND hwnd, HWND prev_clip_hwnd, HWND new_clip_hwnd ) TRACE( "clip hwnd reset from %p\n", hwnd ); data->clip_hwnd = 0; data->clip_reset = GetTickCount(); @@ -187,10 +185,10 @@ index a299944613e..04760ad3938 100644 } else if (prev_clip_hwnd) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c -index bcb0b8044bc..0786378293a 100644 +index 29473ceba06..460e1a7983a 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c -@@ -378,6 +378,7 @@ static void sync_window_style( struct x11drv_win_data *data ) +@@ -375,6 +375,7 @@ static void sync_window_style( struct x11drv_win_data *data ) int mask = get_window_attributes( data, &attr ); XChangeWindowAttributes( data->display, data->whole_window, mask, &attr ); @@ -206,7 +204,7 @@ index bcb0b8044bc..0786378293a 100644 set_initial_wm_hints( data->display, data->whole_window ); set_wm_hints( data ); -@@ -1900,6 +1902,7 @@ BOOL CDECL X11DRV_CreateWindow( HWND hwnd ) +@@ -1908,6 +1910,7 @@ BOOL CDECL X11DRV_CreateWindow( HWND hwnd ) data->clip_window = XCreateWindow( data->display, root_window, 0, 0, 1, 1, 0, 0, InputOnly, default_visual.visual, CWOverrideRedirect | CWEventMask, &attr ); @@ -215,10 +213,10 @@ index bcb0b8044bc..0786378293a 100644 SetPropA( hwnd, clip_window_prop, (HANDLE)data->clip_window ); X11DRV_InitClipboard(); diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h -index 2f14c3f7cea..3e9c42022b3 100644 +index 3f3e386ea4a..3eff6f23e22 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h -@@ -198,6 +198,8 @@ extern BOOL CDECL X11DRV_UnrealizePalette( HPALETTE hpal ) DECLSPEC_HIDDEN; +@@ -249,6 +249,8 @@ extern void CDECL X11DRV_ThreadDetach(void) DECLSPEC_HIDDEN; extern void X11DRV_Xcursor_Init(void) DECLSPEC_HIDDEN; extern void x11drv_xinput_load(void) DECLSPEC_HIDDEN; extern void x11drv_xinput_init(void) DECLSPEC_HIDDEN; @@ -227,7 +225,7 @@ index 2f14c3f7cea..3e9c42022b3 100644 extern DWORD copy_image_bits( BITMAPINFO *info, BOOL is_r8g8b8, XImage *image, const struct gdi_image_bits *src_bits, struct gdi_image_bits *dst_bits, -@@ -318,6 +320,14 @@ struct x11drv_escape_flush_gl_drawable +@@ -370,6 +372,14 @@ struct x11drv_escape_flush_gl_drawable * X11 USER driver */ @@ -242,7 +240,7 @@ index 2f14c3f7cea..3e9c42022b3 100644 struct x11drv_thread_data { Display *display; -@@ -333,7 +343,7 @@ struct x11drv_thread_data +@@ -385,7 +395,7 @@ struct x11drv_thread_data HWND clip_hwnd; /* message window stored in desktop while clipping is active */ DWORD clip_reset; /* time when clipping was last reset */ #ifdef HAVE_X11_EXTENSIONS_XINPUT2_H @@ -252,5 +250,5 @@ index 2f14c3f7cea..3e9c42022b3 100644 int xi2_device_count; XIValuatorClassInfo x_valuator; -- -2.33.0 +2.34.1 diff --git a/patches/user32-rawinput-mouse/0003-winex11.drv-Advertise-XInput2-version-2.1-support.patch b/patches/user32-rawinput-mouse/0003-winex11.drv-Advertise-XInput2-version-2.1-support.patch index ed094f3c..ee287919 100644 --- a/patches/user32-rawinput-mouse/0003-winex11.drv-Advertise-XInput2-version-2.1-support.patch +++ b/patches/user32-rawinput-mouse/0003-winex11.drv-Advertise-XInput2-version-2.1-support.patch @@ -1,7 +1,7 @@ -From 7443945f500e43f507267dddd900356b8c06223e Mon Sep 17 00:00:00 2001 +From fe6fb7ca2e0dce4a023c13480293dd4860027eac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Sun, 24 Oct 2021 22:30:56 +0200 -Subject: [PATCH 3/8] winex11.drv: Advertise XInput2 version 2.1 support. +Subject: [PATCH] winex11.drv: Advertise XInput2 version 2.1 support. Under XInput2 protocol version < 2.1, RawEvents are not supposed to be sent if a pointer grab is active. However slave device events are still @@ -22,10 +22,10 @@ device events only and get rid of slave device id tracking. 2 files changed, 5 insertions(+), 40 deletions(-) diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c -index 04760ad3938..9088aada596 100644 +index 27a1e326cc2..1e3b9ad2be0 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c -@@ -286,7 +286,7 @@ void x11drv_xinput_init(void) +@@ -284,7 +284,7 @@ void x11drv_xinput_init(void) { #ifdef HAVE_X11_EXTENSIONS_XINPUT2_H struct x11drv_thread_data *data = x11drv_thread_data(); @@ -34,7 +34,7 @@ index 04760ad3938..9088aada596 100644 if (data->xi2_state != xi_unknown) return; -@@ -299,7 +299,7 @@ void x11drv_xinput_init(void) +@@ -297,7 +297,7 @@ void x11drv_xinput_init(void) else { data->xi2_state = xi_unavailable; @@ -43,7 +43,7 @@ index 04760ad3938..9088aada596 100644 } #endif } -@@ -336,7 +336,7 @@ void x11drv_xinput_enable( Display *display, Window window, long event_mask ) +@@ -333,7 +333,7 @@ void x11drv_xinput_enable( Display *display, Window window, long event_mask ) mask.mask = mask_bits; mask.mask_len = sizeof(mask_bits); @@ -52,7 +52,7 @@ index 04760ad3938..9088aada596 100644 memset( mask_bits, 0, sizeof(mask_bits) ); XISetMask( mask_bits, XI_DeviceChanged ); XISetMask( mask_bits, XI_RawMotion ); -@@ -349,16 +349,6 @@ void x11drv_xinput_enable( Display *display, Window window, long event_mask ) +@@ -346,16 +346,6 @@ void x11drv_xinput_enable( Display *display, Window window, long event_mask ) update_relative_valuators( pointer_info->classes, pointer_info->num_classes ); pXIFreeDeviceInfo( pointer_info ); @@ -67,9 +67,9 @@ index 04760ad3938..9088aada596 100644 - data->xi2_current_slave = 0; - data->xi2_state = xi_enabled; - #endif } -@@ -390,19 +380,16 @@ void x11drv_xinput_disable( Display *display, Window window, long event_mask ) + +@@ -388,19 +378,16 @@ void x11drv_xinput_disable( Display *display, Window window, long event_mask ) mask.mask = NULL; mask.mask_len = 0; @@ -90,7 +90,15 @@ index 04760ad3938..9088aada596 100644 data->xi2_state = xi_disabled; #endif } -@@ -684,25 +671,7 @@ static BOOL map_raw_event_coords( XIRawEvent *event, INPUT *input ) +@@ -1857,7 +1844,6 @@ static BOOL X11DRV_DeviceChanged( XGenericEventCookie *xev ) + if (event->reason != XISlaveSwitch) return FALSE; + + update_relative_valuators( event->classes, event->num_classes ); +- data->xi2_current_slave = event->sourceid; + return TRUE; + } + +@@ -1873,25 +1859,7 @@ static BOOL map_raw_event_coords( XIRawEvent *event, INPUT *input ) if (x->number < 0 || y->number < 0) return FALSE; if (!event->valuators.mask_len) return FALSE; if (thread_data->xi2_state != xi_enabled) return FALSE; @@ -117,19 +125,11 @@ index 04760ad3938..9088aada596 100644 virtual_rect = get_virtual_screen_rect(); -@@ -1927,7 +1896,6 @@ static BOOL X11DRV_DeviceChanged( XGenericEventCookie *xev ) - if (event->reason != XISlaveSwitch) return FALSE; - - update_relative_valuators( event->classes, event->num_classes ); -- data->xi2_current_slave = event->sourceid; - return TRUE; - } - diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h -index 3e9c42022b3..463c2027077 100644 +index 3eff6f23e22..8cddfa05904 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h -@@ -344,12 +344,9 @@ struct x11drv_thread_data +@@ -396,12 +396,9 @@ struct x11drv_thread_data DWORD clip_reset; /* time when clipping was last reset */ #ifdef HAVE_X11_EXTENSIONS_XINPUT2_H enum xi2_state xi2_state; /* XInput2 state */ @@ -143,5 +143,5 @@ index 3e9c42022b3..463c2027077 100644 }; -- -2.33.0 +2.34.1 diff --git a/staging/upstream-commit b/staging/upstream-commit index b2728c94..a5766ca0 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -2f5f8b4bd4cb5771223d1ee96a55002d18ad01eb +d03984709d87d6eaa0e2e7746f0db5d8fdf81b5a