Updated wintab32-improvements patchset

This commit is contained in:
Alistair Leslie-Hughes 2018-06-25 11:45:04 +10:00
parent ba6b6642fb
commit 2bf4df0d11
6 changed files with 140 additions and 16 deletions

View File

@ -8219,10 +8219,14 @@ if test "$enable_wintab32_improvements" -eq 1; then
patch_apply wintab32-improvements/0001-winex11-Implement-PK_CHANGE-for-wintab.patch
patch_apply wintab32-improvements/0002-wintab32-Set-lcSysExtX-Y-for-the-first-index-of-WTI_.patch
patch_apply wintab32-improvements/0003-winex11-Handle-negative-orAltitude-values.patch
patch_apply wintab32-improvements/0004-winex11.drv-Support-multiplex-categories-WTI_DSCTXS-.patch
patch_apply wintab32-improvements/0005-winex11-Support-WTI_STATUS-in-WTInfo.patch
(
printf '%s\n' '+ { "Eriks Dobelis", "winex11: Implement PK_CHANGE for wintab.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "wintab32: Set lcSysExtX/Y for the first index of WTI_DDCTXS.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "winex11: Handle negative orAltitude values.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "winex11.drv: Support multiplex categories WTI_DSCTXS and WTI_DDCTXS.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "winex11: Support WTI_STATUS in WTInfo.", 1 },';
) >> "$patchlist"
fi

View File

@ -1,14 +1,14 @@
From 495ba38e883f801953cc995817048c9916a86177 Mon Sep 17 00:00:00 2001
From 257f0d7fb176f317b8c47e02bf9c4b7fb89f8dfe Mon Sep 17 00:00:00 2001
From: Eriks Dobelis <eriks00@moon.lv>
Date: Thu, 31 May 2018 11:38:54 +1000
Subject: [PATCH 1/3] winex11: Implement PK_CHANGE for wintab
Subject: [PATCH] winex11: Implement PK_CHANGE for wintab
---
dlls/winex11.drv/wintab.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
dlls/winex11.drv/wintab.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c
index e4259bf..f6b89e5 100644
index e4259bf..a9ac78a 100644
--- a/dlls/winex11.drv/wintab.c
+++ b/dlls/winex11.drv/wintab.c
@@ -267,6 +267,13 @@ static int proximity_out_type;
@ -17,7 +17,7 @@ index e4259bf..f6b89e5 100644
static DWORD gSerial;
+static DWORD lastX = 0xffff;
+static DWORD lastY = 0xffff;
+static UINT lastNormalPressure = 0xffff;
+static UINT lastNormalPressure = 0xffff, lastTangentPressure = 0xffff;
+static DWORD lastButtons = 0xffff;
+static UINT lastCursor = 0xffff;
+static ORIENTATION lastOrientation = {.orAzimuth = 0xffff, .orAltitude = 0xffff, .orTwist = 0xffff };
@ -25,7 +25,7 @@ index e4259bf..f6b89e5 100644
/* Reference: http://www.wacomeng.com/devsupport/ibmpc/gddevpc.html
*
@@ -839,6 +846,50 @@ static int cursor_from_device(DWORD deviceid, LPWTI_CURSORS_INFO *cursorp)
@@ -839,6 +846,55 @@ static int cursor_from_device(DWORD deviceid, LPWTI_CURSORS_INFO *cursorp)
return -1;
}
@ -47,6 +47,11 @@ index e4259bf..f6b89e5 100644
+ change |= PK_NORMAL_PRESSURE;
+ lastNormalPressure = pkt->pkNormalPressure;
+ }
+ if (pkt->pkTangentPressure != lastTangentPressure)
+ {
+ change |= PK_TANGENT_PRESSURE;
+ lastTangentPressure = pkt->pkTangentPressure;
+ }
+ if (pkt->pkCursor != lastCursor)
+ {
+ change |= PK_CURSOR;
@ -70,13 +75,13 @@ index e4259bf..f6b89e5 100644
+ lastRotation = pkt->pkRotation;
+ }
+
+ return change;
+ return change;
+}
+
static BOOL motion_event( HWND hwnd, XEvent *event )
{
XDeviceMotionEvent *motion = (XDeviceMotionEvent *)event;
@@ -865,6 +916,7 @@ static BOOL motion_event( HWND hwnd, XEvent *event )
@@ -865,6 +921,7 @@ static BOOL motion_event( HWND hwnd, XEvent *event )
* (gMsgPacket.pkStatus & TPS_INVERT?-1:1));
gMsgPacket.pkNormalPressure = motion->axis_data[2];
gMsgPacket.pkButtons = get_button_state(curnum);
@ -84,7 +89,7 @@ index e4259bf..f6b89e5 100644
SendMessageW(hwndTabletDefault,WT_PACKET,gMsgPacket.pkSerialNumber,(LPARAM)hwnd);
return TRUE;
}
@@ -895,6 +947,7 @@ static BOOL button_event( HWND hwnd, XEvent *event )
@@ -895,6 +952,7 @@ static BOOL button_event( HWND hwnd, XEvent *event )
* (gMsgPacket.pkStatus & TPS_INVERT?-1:1));
gMsgPacket.pkNormalPressure = button->axis_data[2];
gMsgPacket.pkButtons = get_button_state(curnum);

View File

@ -1,8 +1,7 @@
From d0fae855025f12e29ce9be1aa0a8204e50fc39e5 Mon Sep 17 00:00:00 2001
From 3e2be51876cea141ae48e43341d37d5e676bfbf3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 31 May 2018 11:45:10 +1000
Subject: [PATCH 2/3] wintab32: Set lcSysExtX/Y for the first index of
WTI_DDCTXS
Subject: [PATCH] wintab32: Set lcSysExtX/Y for the first index of WTI_DDCTXS
---
dlls/wintab32/context.c | 2 +-

View File

@ -1,14 +1,14 @@
From 0a77e5d626632db48fd718163f166df47641b182 Mon Sep 17 00:00:00 2001
From 9914daf80dcad2ca1d8529c11a38b7825dcae570 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 3/3] winex11: Handle negative orAltitude values
Subject: [PATCH] winex11: Handle negative orAltitude values
---
dlls/winex11.drv/wintab.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c
index f6b89e5..0089266 100644
index f6b89e5..5cd6a39 100644
--- a/dlls/winex11.drv/wintab.c
+++ b/dlls/winex11.drv/wintab.c
@@ -914,6 +914,12 @@ static BOOL motion_event( HWND hwnd, XEvent *event )

View File

@ -0,0 +1,36 @@
From bb70ae317120c74ae894d1b1f470cc77a35c8d06 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 25 Jun 2018 10:09:20 +1000
Subject: [PATCH] winex11.drv: Support multiplex categories WTI_DSCTXS and
WTI_DDCTXS
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/winex11.drv/wintab.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c
index 5cd6a39..a7ff99b 100644
--- a/dlls/winex11.drv/wintab.c
+++ b/dlls/winex11.drv/wintab.c
@@ -1151,6 +1151,17 @@ UINT CDECL X11DRV_WTInfoW(UINT wCategory, UINT nIndex, LPVOID lpOutput)
if (!xinput_handle) return 0;
+ if(wCategory >= WTI_DSCTXS)
+ {
+ nIndex = wCategory - WTI_DSCTXS;
+ wCategory = WTI_DSCTXS;
+ }
+ else if(wCategory >= WTI_DDCTXS)
+ {
+ nIndex = wCategory - WTI_DDCTXS;
+ wCategory = WTI_DDCTXS;
+ }
+
switch(wCategory)
{
case 0:
--
1.9.1

View File

@ -0,0 +1,80 @@
From 127c5cb0af10084f718dd99ec83bd49ed7b29def Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 25 Jun 2018 10:44:14 +1000
Subject: [PATCH] winex11: Support WTI_STATUS in WTInfo
WIP: Improve default values.
---
dlls/winex11.drv/wintab.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c
index afdb051..0cc8ccd 100644
--- a/dlls/winex11.drv/wintab.c
+++ b/dlls/winex11.drv/wintab.c
@@ -1210,6 +1210,62 @@ UINT CDECL X11DRV_WTInfoW(UINT wCategory, UINT nIndex, LPVOID lpOutput)
rc = 0;
}
break;
+ case WTI_STATUS:
+ switch (nIndex)
+ {
+ case STA_CONTEXTS:
+ {
+ FIXME("STA_CONTEXTS unhandled\n");
+ rc = 1;
+ break;
+ }
+ case STA_SYSCTXS:
+ {
+ FIXME("STA_SYSCTXS unhandled\n");
+ rc = 1;
+ break;
+ }
+ case STA_PKTRATE:
+ {
+ FIXME("STA_PKTRATE unhandled\n");
+ rc = 0;
+ break;
+ }
+ case STA_PKTDATA:
+ {
+ FIXME("STA_PKTDATA unhandled\n");
+ rc = 0;
+ break;
+ }
+ case STA_MANAGERS:
+ {
+ FIXME("STA_MANAGERS unhandled\n");
+ rc = 1;
+ break;
+ }
+ case STA_SYSTEM:
+ {
+ FIXME("STA_SYSTEM unhandled\n");
+ rc = TRUE;
+ break;
+ }
+ case STA_BUTTONUSE:
+ {
+ FIXME("STA_BUTTONUSE unhandled\n");
+ rc = 0;
+ break;
+ }
+ case STA_SYSBTNUSE:
+ {
+ FIXME("STA_SYSBTNUSE unhandled\n");
+ rc = 0;
+ break;
+ }
+ default:
+ FIXME("WTI_STATUS unhandled index %i\n",nIndex);
+ rc = 0;
+ }
+ break;
case WTI_DEFSYSCTX:
case WTI_DDCTXS:
case WTI_DEFCONTEXT:
--
1.9.1