From 7fc2d64fee29b2c115becbef1d9006e2ebc13fa2 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Tue, 31 May 2022 17:20:45 -0500 Subject: [PATCH] Rebase against 9d72487f2102bd6eb245e199e73304c67bb5d41a. --- ...gString-should-throw-the-exception-a.patch | 18 +++---- patches/patchinstall.sh | 2 +- ...ort-XInput2-events-for-individual-wi.patch | 48 +++++++++---------- staging/upstream-commit | 2 +- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch b/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch index 91736dcb..01a41266 100644 --- a/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch +++ b/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch @@ -1,4 +1,4 @@ -From 6cfa7d9011879898a079614077a605c812cb440e Mon Sep 17 00:00:00 2001 +From da81169743bd7f070186ec5e58c89bab53d0bb7f Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 28 Sep 2014 23:39:51 +0200 Subject: [PATCH] ntdll: OutputDebugString should throw the exception a second @@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: OutputDebugString should throw the exception a second 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/dlls/kernelbase/debug.c b/dlls/kernelbase/debug.c -index 9488f2e2399..1cea4b5ba3c 100644 +index 9e954e3ffbe..a6793c20204 100644 --- a/dlls/kernelbase/debug.c +++ b/dlls/kernelbase/debug.c @@ -200,6 +200,23 @@ void WINAPI DECLSPEC_HOTPATCH OutputDebugStringA( LPCSTR str ) @@ -38,10 +38,10 @@ index 9488f2e2399..1cea4b5ba3c 100644 if (!mutex_inited) { diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c -index c4413d4d66e..4fe2c2b04db 100644 +index 3e76b001147..0c02486e19c 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c -@@ -8327,7 +8327,7 @@ static LONG CALLBACK outputdebugstring_vectored_handler(EXCEPTION_POINTERS *Exce +@@ -8345,7 +8345,7 @@ static LONG CALLBACK outputdebugstring_vectored_handler(EXCEPTION_POINTERS *Exce return EXCEPTION_CONTINUE_SEARCH; } @@ -50,7 +50,7 @@ index c4413d4d66e..4fe2c2b04db 100644 { PVOID vectored_handler; -@@ -8343,7 +8343,6 @@ static void test_outputdebugstring(DWORD numexc, BOOL todo) +@@ -8361,7 +8361,6 @@ static void test_outputdebugstring(DWORD numexc, BOOL todo) outputdebugstring_exceptions = 0; OutputDebugStringA("Hello World"); @@ -58,7 +58,7 @@ index c4413d4d66e..4fe2c2b04db 100644 ok(outputdebugstring_exceptions == numexc, "OutputDebugStringA generated %ld exceptions, expected %ld\n", outputdebugstring_exceptions, numexc); -@@ -10660,9 +10659,9 @@ START_TEST(exception) +@@ -10785,9 +10784,9 @@ START_TEST(exception) else skip( "RtlRaiseException not found\n" ); #endif test_stage = 3; @@ -70,15 +70,15 @@ index c4413d4d66e..4fe2c2b04db 100644 test_stage = 5; test_ripevent(0); test_stage = 6; -@@ -10766,7 +10765,7 @@ START_TEST(exception) +@@ -10900,7 +10899,7 @@ START_TEST(exception) test_debugger(DBG_EXCEPTION_HANDLED); test_debugger(DBG_CONTINUE); test_thread_context(); - test_outputdebugstring(1, FALSE); + test_outputdebugstring(1); test_ripevent(1); + test_fastfail(); test_breakpoint(1); - test_closehandle(0, (HANDLE)0xdeadbeef); -- -2.35.1 +2.36.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a7ebf885..0276a182 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "4312d209232c701b0b78d9f8b463917c989005c5" + echo "9d72487f2102bd6eb245e199e73304c67bb5d41a" } # Show version information 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 c62610c3..a9583a12 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,4 +1,4 @@ -From 4fb0e8d596496359484426d726a929ff8acf2e21 Mon Sep 17 00:00:00 2001 +From 3c53044557316db957a20471118c1481bb712a6c 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] winex11.drv: Support XInput2 events for individual windows. @@ -14,10 +14,10 @@ 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 c335bc5ba2b..3523e9c843c 100644 +index bc2ba60397b..96f74478600 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c -@@ -359,6 +359,7 @@ NTSTATUS x11drv_create_desktop( void *arg ) +@@ -363,6 +363,7 @@ NTSTATUS x11drv_create_desktop( void *arg ) 0, 0, params->width, params->height, 0, default_visual.depth, InputOutput, default_visual.visual, CWEventMask | CWCursor | CWColormap, &win_attr ); if (!win) return FALSE; @@ -26,10 +26,10 @@ index c335bc5ba2b..3523e9c843c 100644 X11DRV_init_desktop( win, params->width, params->height ); diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c -index a321e324a24..dec32ec963a 100644 +index f81d2338faf..93032cedf70 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c -@@ -239,6 +239,13 @@ static Bool filter_event( Display *display, XEvent *event, char *arg ) +@@ -237,6 +237,13 @@ static Bool filter_event( Display *display, XEvent *event, char *arg ) return (mask & QS_MOUSEBUTTON) != 0; #ifdef GenericEvent case GenericEvent: @@ -44,10 +44,10 @@ index a321e324a24..dec32ec963a 100644 case MotionNotify: case EnterNotify: diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c -index eee737a1e40..bf67d6b727f 100644 +index b0dce3b245f..0725da89f67 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c -@@ -304,20 +304,32 @@ void x11drv_xinput_init(void) +@@ -305,20 +305,32 @@ void x11drv_xinput_init(void) /*********************************************************************** @@ -85,7 +85,7 @@ index eee737a1e40..bf67d6b727f 100644 mask.mask = mask_bits; mask.mask_len = sizeof(mask_bits); -@@ -327,8 +339,9 @@ static void enable_xinput2(void) +@@ -328,8 +340,9 @@ static void enable_xinput2(void) XISetMask( mask_bits, XI_RawMotion ); XISetMask( mask_bits, XI_ButtonPress ); @@ -96,7 +96,7 @@ index eee737a1e40..bf67d6b727f 100644 pointer_info = pXIQueryDevice( data->display, data->xi2_core_pointer, &count ); update_relative_valuators( pointer_info->classes, pointer_info->num_classes ); pXIFreeDeviceInfo( pointer_info ); -@@ -337,7 +350,7 @@ static void enable_xinput2(void) +@@ -338,7 +351,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 @@ -105,7 +105,7 @@ index eee737a1e40..bf67d6b727f 100644 */ if (data->xi2_devices) pXIFreeDeviceInfo( data->xi2_devices ); data->xi2_devices = pXIQueryDevice( data->display, XIAllDevices, &data->xi2_device_count ); -@@ -349,24 +362,37 @@ static void enable_xinput2(void) +@@ -350,24 +363,37 @@ static void enable_xinput2(void) #endif /*********************************************************************** @@ -149,7 +149,7 @@ index eee737a1e40..bf67d6b727f 100644 pXIFreeDeviceInfo( data->xi2_devices ); data->x_valuator.number = -1; data->y_valuator.number = -1; -@@ -375,6 +401,7 @@ static void disable_xinput2(void) +@@ -376,6 +402,7 @@ static void disable_xinput2(void) data->xi2_devices = NULL; data->xi2_core_pointer = 0; data->xi2_current_slave = 0; @@ -157,7 +157,7 @@ index eee737a1e40..bf67d6b727f 100644 #endif } -@@ -417,7 +444,7 @@ static BOOL grab_clipping_window( const RECT *clip ) +@@ -421,7 +448,7 @@ static BOOL grab_clipping_window( const RECT *clip ) } /* enable XInput2 unless we are already clipping */ @@ -166,7 +166,7 @@ index eee737a1e40..bf67d6b727f 100644 if (data->xi2_state != xi_enabled) { -@@ -447,7 +474,7 @@ static BOOL grab_clipping_window( const RECT *clip ) +@@ -451,7 +478,7 @@ static BOOL grab_clipping_window( const RECT *clip ) if (!clipping_cursor) { @@ -175,7 +175,7 @@ index eee737a1e40..bf67d6b727f 100644 NtUserDestroyWindow( msg_hwnd ); return FALSE; } -@@ -530,7 +557,7 @@ LRESULT clip_cursor_notify( HWND hwnd, HWND prev_clip_hwnd, HWND new_clip_hwnd ) +@@ -534,7 +561,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 = NtGetTickCount(); @@ -185,10 +185,10 @@ index eee737a1e40..bf67d6b727f 100644 } else if (prev_clip_hwnd) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c -index b9450911abc..4c7faeac969 100644 +index 5d9a93688c3..bfad72482e6 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c -@@ -358,6 +358,7 @@ static void sync_window_style( struct x11drv_win_data *data ) +@@ -361,6 +361,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 ); @@ -196,7 +196,7 @@ index b9450911abc..4c7faeac969 100644 } } -@@ -1593,6 +1594,7 @@ static void create_whole_window( struct x11drv_win_data *data ) +@@ -1599,6 +1600,7 @@ static void create_whole_window( struct x11drv_win_data *data ) data->vis.visual, mask, &attr ); if (!data->whole_window) goto done; @@ -204,19 +204,19 @@ index b9450911abc..4c7faeac969 100644 set_initial_wm_hints( data->display, data->whole_window ); set_wm_hints( data ); -@@ -1907,6 +1909,7 @@ BOOL X11DRV_CreateWindow( HWND hwnd ) +@@ -1911,6 +1913,7 @@ BOOL 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 ); + x11drv_xinput_enable( data->display, data->clip_window, attr.event_mask ); XFlush( data->display ); NtUserSetProp( hwnd, clip_window_prop, (HANDLE)data->clip_window ); - x11drv_client_call( client_clipboard_init, 0 ); + X11DRV_DisplayDevices_RegisterEventHandlers(); diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h -index d92a235f889..82540cab507 100644 +index 9fd5fb481a7..c1c5f1ac34d 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h -@@ -253,6 +253,8 @@ extern void X11DRV_ThreadDetach(void) DECLSPEC_HIDDEN; +@@ -259,6 +259,8 @@ extern void 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; @@ -225,7 +225,7 @@ index d92a235f889..82540cab507 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, -@@ -359,6 +361,14 @@ struct x11drv_escape_flush_gl_drawable +@@ -364,6 +366,14 @@ struct x11drv_escape_flush_gl_drawable * X11 USER driver */ @@ -240,7 +240,7 @@ index d92a235f889..82540cab507 100644 struct x11drv_thread_data { Display *display; -@@ -375,7 +385,7 @@ struct x11drv_thread_data +@@ -379,7 +389,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 @@ -250,5 +250,5 @@ index d92a235f889..82540cab507 100644 int xi2_device_count; XIValuatorClassInfo x_valuator; -- -2.35.1 +2.36.1 diff --git a/staging/upstream-commit b/staging/upstream-commit index d614595b..5e909be9 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -4312d209232c701b0b78d9f8b463917c989005c5 +9d72487f2102bd6eb245e199e73304c67bb5d41a