Wintab32 (Patch 6 of 8) -- Expose more XInput events through the
wintab api.
Robert North
7ownq0k402 at sneakemail.com
Fri Jan 21 12:52:11 CST 2005
This set of patches works towards better quality painting in Painter5.
Tested on Painter5 & Photoshop 6.
Changelog:
*Packets from eraser cursors are marked as inverted, matching behavior
on Windows Wacom tablets.
-------------- next part --------------
Index: dlls/x11drv/wintab.c
===================================================================
--- dlls/x11drv/wintab.c (revision 158)
+++ dlls/x11drv/wintab.c (revision 159)
@@ -595,9 +595,12 @@
if(event->type == motion_type)
{
XDeviceMotionEvent *motion = (XDeviceMotionEvent *)event;
+ LPWTI_CURSORS_INFO cursor = &gSysCursor[motion->deviceid];
TRACE_(event)("Received tablet motion event (%p)\n",hwnd);
TRACE("Received tablet motion event (%p)\n",hwnd);
+ /* Set cursor to inverted if cursor is the eraser */
+ gMsgPacket.pkStatus = (cursor->TYPE == 0xc85a ?TPS_INVERT:0);
gMsgPacket.pkTime = EVENT_x11_time_to_win32_time(motion->time);
gMsgPacket.pkSerialNumber = gSerial++;
gMsgPacket.pkCursor = motion->deviceid;
@@ -615,11 +618,14 @@
button_release_type))
{
XDeviceButtonEvent *button = (XDeviceButtonEvent *) event;
+ LPWTI_CURSORS_INFO cursor = &gSysCursor[button->deviceid];
TRACE_(event)("Received tablet button event\n");
TRACE("Received tablet button %s event\n", (event->type ==
button_press_type)?"press":"release");
+ /* Set cursor to inverted if cursor is the eraser */
+ gMsgPacket.pkStatus = (cursor->TYPE == 0xc85a ?TPS_INVERT:0);
set_button_state(button->deviceid);
gMsgPacket.pkTime = button->time;
gMsgPacket.pkSerialNumber = gSerial++;
@@ -648,10 +654,13 @@
(event->type == proximity_out_type))
{
XProximityNotifyEvent *proximity = (XProximityNotifyEvent *) event;
+ LPWTI_CURSORS_INFO cursor = &gSysCursor[proximity->deviceid];
TRACE_(event)("Received tablet proximity event\n");
TRACE("Received tablet proximity event\n");
- gMsgPacket.pkStatus = (event->type==proximity_out_type)?TPS_PROXIMITY:0;
+ /* Set cursor to inverted if cursor is the eraser */
+ gMsgPacket.pkStatus = (cursor->TYPE == 0xc85a ?TPS_INVERT:0);
+ gMsgPacket.pkStatus |= (event->type==proximity_out_type)?TPS_PROXIMITY:0;
gMsgPacket.pkTime = proximity->time;
gMsgPacket.pkSerialNumber = gSerial++;
gMsgPacket.pkCursor = proximity->deviceid;
More information about the wine-patches
mailing list