Updated wintab32-improvements patchset

This commit is contained in:
Alistair Leslie-Hughes 2019-12-12 11:34:15 +11:00
parent 4522654f1c
commit 2326756550

View File

@ -1,17 +1,17 @@
From 7e8265244d86db0ae31478484283472f4ddef3c6 Mon Sep 17 00:00:00 2001
From 674b3d1e35526de8ab073854aae5d457954d40e6 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 31 May 2018 11:52:09 +1000
Subject: [PATCH] winex11: Handle negative orAltitude values
---
dlls/winex11.drv/wintab.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
dlls/winex11.drv/wintab.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c
index 12eb89ac7f4..87868576036 100644
index ef42a1f07c..7b1bf38146 100644
--- a/dlls/winex11.drv/wintab.c
+++ b/dlls/winex11.drv/wintab.c
@@ -903,6 +903,12 @@ static BOOL motion_event( HWND hwnd, XEvent *event )
@@ -903,6 +903,11 @@ static BOOL motion_event( HWND hwnd, XEvent *event )
(abs(motion->axis_data[3]),
abs(motion->axis_data[4])))
* (gMsgPacket.pkStatus & TPS_INVERT?-1:1));
@ -19,12 +19,11 @@ index 12eb89ac7f4..87868576036 100644
+ if (gMsgPacket.pkOrientation.orAltitude < 0)
+ {
+ FIXME("Negative orAltitude detected\n");
+ return FALSE;
+ }
gMsgPacket.pkNormalPressure = motion->axis_data[2];
gMsgPacket.pkButtons = get_button_state(curnum);
gMsgPacket.pkChanged = get_changed_state(&gMsgPacket);
@@ -929,6 +935,7 @@ static BOOL button_event( HWND hwnd, XEvent *event )
@@ -929,6 +934,7 @@ static BOOL button_event( HWND hwnd, XEvent *event )
gMsgPacket.pkTime = EVENT_x11_time_to_win32_time(button->time);
gMsgPacket.pkSerialNumber = gSerial++;
gMsgPacket.pkCursor = curnum;
@ -32,7 +31,7 @@ index 12eb89ac7f4..87868576036 100644
if (button->axes_count > 0) {
gMsgPacket.pkX = button->axis_data[0];
gMsgPacket.pkY = button->axis_data[1];
@@ -943,6 +950,13 @@ static BOOL button_event( HWND hwnd, XEvent *event )
@@ -943,6 +949,12 @@ static BOOL button_event( HWND hwnd, XEvent *event )
gMsgPacket.pkOrientation = last_packet.pkOrientation;
gMsgPacket.pkNormalPressure = last_packet.pkNormalPressure;
}
@ -40,20 +39,18 @@ index 12eb89ac7f4..87868576036 100644
+ if (gMsgPacket.pkOrientation.orAltitude < 0)
+ {
+ FIXME("Negative orAltitude detected\n");
+ return FALSE;
+ }
+
gMsgPacket.pkButtons = get_button_state(curnum);
gMsgPacket.pkChanged = get_changed_state(&gMsgPacket);
SendMessageW(hwndTabletDefault,WT_PACKET,gMsgPacket.pkSerialNumber,(LPARAM)hwnd);
@@ -985,6 +999,11 @@ static BOOL proximity_event( HWND hwnd, XEvent *event )
@@ -985,6 +997,10 @@ static BOOL proximity_event( HWND hwnd, XEvent *event )
gMsgPacket.pkOrientation.orAltitude = ((1000 - 15 * max(abs(proximity->axis_data[3]),
abs(proximity->axis_data[4])))
* (gMsgPacket.pkStatus & TPS_INVERT?-1:1));
+ if (gMsgPacket.pkOrientation.orAltitude < 0)
+ {
+ FIXME("Negative orAltitude detected\n");
+ return FALSE;
+ }
gMsgPacket.pkNormalPressure = proximity->axis_data[2];
gMsgPacket.pkButtons = get_button_state(curnum);