Added user32-GetPointerType patchset

This commit is contained in:
Alistair Leslie-Hughes 2018-10-05 08:40:41 +10:00
parent 9d20573c6e
commit faf8498490
3 changed files with 166 additions and 25 deletions

View File

@ -321,6 +321,7 @@ patch_enable_all ()
enable_user32_DrawMenuItem="$1"
enable_user32_DrawTextExW="$1"
enable_user32_FlashWindowEx="$1"
enable_user32_GetPointerType="$1"
enable_user32_GetSystemMetrics="$1"
enable_user32_LR_LOADFROMFILE="$1"
enable_user32_ListBox_Size="$1"
@ -1130,6 +1131,9 @@ patch_enable ()
user32-FlashWindowEx)
enable_user32_FlashWindowEx="$2"
;;
user32-GetPointerType)
enable_user32_GetPointerType="$2"
;;
user32-GetSystemMetrics)
enable_user32_GetSystemMetrics="$2"
;;
@ -1897,6 +1901,13 @@ if test "$enable_uxtheme_GTK_Theming" -eq 1; then
enable_ntdll_DllRedirects=1
fi
if test "$enable_user32_GetPointerType" -eq 1; then
if test "$enable_user32_Mouse_Message_Hwnd" -gt 1; then
abort "Patchset user32-Mouse_Message_Hwnd disabled, but user32-GetPointerType depends on that."
fi
enable_user32_Mouse_Message_Hwnd=1
fi
if test "$enable_stdole32_tlb_SLTG_Typelib" -eq 1; then
if test "$enable_widl_SLTG_Typelib_Support" -gt 1; then
abort "Patchset widl-SLTG_Typelib_Support disabled, but stdole32.tlb-SLTG_Typelib depends on that."
@ -6709,6 +6720,49 @@ if test "$enable_user32_FlashWindowEx" -eq 1; then
) >> "$patchlist"
fi
# Patchset user32-Mouse_Message_Hwnd
# |
# | This patchset fixes the following Wine bugs:
# | * [#22458] Fix issues with inserting symbols by clicking on center in Word 2007 & 2010
# | * [#12007] Fix issues with dragging layers between images in Adobe Photoshop 7.0
# | * [#9512] Make sure popups don't block access to objects underneath in DVDPro
# |
# | Modified files:
# | * dlls/user32/message.c, dlls/user32/tests/input.c, dlls/winex11.drv/bitblt.c, server/protocol.def, server/window.c
# |
if test "$enable_user32_Mouse_Message_Hwnd" -eq 1; then
patch_apply user32-Mouse_Message_Hwnd/0001-user32-Try-harder-to-find-a-target-for-mouse-message.patch
patch_apply user32-Mouse_Message_Hwnd/0002-user32-tests-Add-tests-for-clicking-through-layered-.patch
patch_apply user32-Mouse_Message_Hwnd/0003-user32-tests-Add-tests-for-window-region-of-layered-.patch
patch_apply user32-Mouse_Message_Hwnd/0004-user32-tests-Add-tests-for-DC-region.patch
patch_apply user32-Mouse_Message_Hwnd/0005-server-Add-support-for-a-layered-window-region.-v2.patch
(
printf '%s\n' '+ { "Dmitry Timoshkov", "user32: Try harder to find a target for mouse messages.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for clicking through layered window.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for window region of layered windows.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for DC region.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "server: Add support for a layered window region.", 3 },';
) >> "$patchlist"
fi
# Patchset user32-GetPointerType
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * user32-Mouse_Message_Hwnd
# |
# | This patchset fixes the following Wine bugs:
# | * [#45765] Added GetPointerType stub
# |
# | Modified files:
# | * dlls/user32/misc.c, dlls/user32/tests/input.c, dlls/user32/user32.spec, include/winuser.h
# |
if test "$enable_user32_GetPointerType" -eq 1; then
patch_apply user32-GetPointerType/0001-user32-Added-GetPointerType-stub.patch
(
printf '%s\n' '+ { "Louis Lenders", "user32: Added GetPointerType stub.", 1 },';
) >> "$patchlist"
fi
# Patchset user32-GetSystemMetrics
# |
# | This patchset fixes the following Wine bugs:
@ -6768,31 +6822,6 @@ if test "$enable_user32_MessageBox_WS_EX_TOPMOST" -eq 1; then
) >> "$patchlist"
fi
# Patchset user32-Mouse_Message_Hwnd
# |
# | This patchset fixes the following Wine bugs:
# | * [#22458] Fix issues with inserting symbols by clicking on center in Word 2007 & 2010
# | * [#12007] Fix issues with dragging layers between images in Adobe Photoshop 7.0
# | * [#9512] Make sure popups don't block access to objects underneath in DVDPro
# |
# | Modified files:
# | * dlls/user32/message.c, dlls/user32/tests/input.c, dlls/winex11.drv/bitblt.c, server/protocol.def, server/window.c
# |
if test "$enable_user32_Mouse_Message_Hwnd" -eq 1; then
patch_apply user32-Mouse_Message_Hwnd/0001-user32-Try-harder-to-find-a-target-for-mouse-message.patch
patch_apply user32-Mouse_Message_Hwnd/0002-user32-tests-Add-tests-for-clicking-through-layered-.patch
patch_apply user32-Mouse_Message_Hwnd/0003-user32-tests-Add-tests-for-window-region-of-layered-.patch
patch_apply user32-Mouse_Message_Hwnd/0004-user32-tests-Add-tests-for-DC-region.patch
patch_apply user32-Mouse_Message_Hwnd/0005-server-Add-support-for-a-layered-window-region.-v2.patch
(
printf '%s\n' '+ { "Dmitry Timoshkov", "user32: Try harder to find a target for mouse messages.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for clicking through layered window.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for window region of layered windows.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "user32/tests: Add tests for DC region.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "server: Add support for a layered window region.", 3 },';
) >> "$patchlist"
fi
# Patchset user32-Refresh_MDI_Menus
# |
# | This patchset fixes the following Wine bugs:

View File

@ -0,0 +1,110 @@
From 23971e63a98708060727389e92a3464425543d7c Mon Sep 17 00:00:00 2001
From: Louis Lenders <xerox.xerox2000x@gmail.com>
Date: Mon, 17 Sep 2018 17:26:21 +0200
Subject: [PATCH] user32: Added GetPointerType stub
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45765
---
dlls/user32/misc.c | 12 ++++++++++++
dlls/user32/tests/input.c | 17 +++++++++++++++++
dlls/user32/user32.spec | 1 +
include/winuser.h | 1 +
4 files changed, 31 insertions(+)
diff --git a/dlls/user32/misc.c b/dlls/user32/misc.c
index c1c812d..647258b 100644
--- a/dlls/user32/misc.c
+++ b/dlls/user32/misc.c
@@ -741,6 +741,18 @@ BOOL WINAPI RegisterTouchHitTestingWindow(HWND hwnd, ULONG value)
return TRUE;
}
+/**********************************************************************
+ * GetPointerType [USER32.@]
+ */
+BOOL WINAPI GetPointerType(UINT32 id, POINTER_INPUT_TYPE *type)
+{
+ FIXME("(%d %p): stub\n", id, type);
+ if(!type)
+ return FALSE;
+
+ *type = PT_MOUSE;
+ return TRUE;
+}
static const WCHAR imeW[] = {'I','M','E',0};
const struct builtin_class_descr IME_builtin_class =
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 5fa15af..7338cb3 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -78,6 +78,7 @@ static struct {
} key_status;
static UINT (WINAPI *pSendInput) (UINT, INPUT*, size_t);
+static BOOL (WINAPI *pGetPointerType)(UINT32, POINTER_INPUT_TYPE*);
static int (WINAPI *pGetMouseMovePointsEx) (UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD);
static UINT (WINAPI *pGetRawInputDeviceList) (PRAWINPUTDEVICELIST, PUINT, UINT);
static int (WINAPI *pGetWindowRgnBox)(HWND, LPRECT);
@@ -163,6 +164,7 @@ static void init_function_pointers(void)
trace("GetProcAddress(%s) failed\n", #func);
GET_PROC(SendInput)
+ GET_PROC(GetPointerType)
GET_PROC(GetMouseMovePointsEx)
GET_PROC(GetRawInputDeviceList)
GET_PROC(GetWindowRgnBox)
@@ -2874,6 +2876,16 @@ static void test_OemKeyScan(void)
}
}
+static void test_GetPointerType(void)
+{
+ BOOL ret;
+ POINTER_INPUT_TYPE type = -1;
+
+ ret = pGetPointerType(1, &type);
+ ok(ret, "GetPointerType failed, got type %d for 1\n", type );
+ ok(type != -1, " type %d\n", type );
+}
+
START_TEST(input)
{
init_function_pointers();
@@ -2908,4 +2920,9 @@ START_TEST(input)
test_GetRawInputDeviceList();
else
win_skip("GetRawInputDeviceList is not available\n");
+
+ if(pGetPointerType)
+ test_GetPointerType();
+ else
+ win_skip("GetPointerType is not available\n");
}
diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec
index 61e0e4e..216a755 100644
--- a/dlls/user32/user32.spec
+++ b/dlls/user32/user32.spec
@@ -355,6 +355,7 @@
@ stdcall GetParent(long)
@ stdcall GetPhysicalCursorPos(ptr)
@ stdcall GetPointerDevices(ptr ptr)
+@ stdcall GetPointerType(long ptr)
@ stdcall GetPriorityClipboardFormat(ptr long)
@ stdcall GetProcessDefaultLayout(ptr)
@ stdcall GetProcessDpiAwarenessInternal(long ptr)
diff --git a/include/winuser.h b/include/winuser.h
index 2c05f26..c5bb679 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -3805,6 +3805,7 @@ WINUSERAPI HWND WINAPI GetNextDlgTabItem(HWND,HWND,BOOL);
WINUSERAPI HWND WINAPI GetOpenClipboardWindow(void);
WINUSERAPI HWND WINAPI GetParent(HWND);
WINUSERAPI BOOL WINAPI GetPhysicalCursorPos(POINT*);
+WINUSERAPI BOOL WINAPI GetPointerType(UINT32,POINTER_INPUT_TYPE *);
WINUSERAPI INT WINAPI GetPriorityClipboardFormat(UINT*,INT);
WINUSERAPI BOOL WINAPI GetProcessDefaultLayout(DWORD*);
WINUSERAPI BOOL WINAPI GetProcessDpiAwarenessInternal(HANDLE,DPI_AWARENESS*);
--
1.9.1

View File

@ -0,0 +1,2 @@
Fixes: [45765] Added GetPointerType stub
Depends: user32-Mouse_Message_Hwnd