Mouse Events

Brad Campbell brad at seme.com.au
Wed Aug 29 09:00:43 CDT 2001


G'day all,

Maiden post. Please be gentle..

I had a problem using wine with a touchscreen under XFree 4.0.2.
With the help of Gerard Patel and Ove Kaaven I have come up with a
patch that solves my problem, and does not appear to disrupt any of
the other machines and programs I use. I have looked at several ways
of achieving this, and this seems to be the least messy.

This has been tested with both the touchscreen and also ps/2 mouse
and works well with both.

I'm not a C programmer at all, and have little experience with the WINE
code. All comments both positive and negative appreciated..
Thanks..

To be applied to windows/input.c


--- input.c     Wed Aug 29 21:00:42 2001
+++ input.c.new Wed Aug 29 20:59:01 2001
@@ -195,43 +195,43 @@
     if (mi->dwFlags & (!SwappedButtons? MOUSEEVENTF_LEFTDOWN : MOUSEEVENTF_RIGHTDOWN))
     {
         MouseButtonsStates[0] = AsyncMouseButtonsStates[0] = TRUE;
-        queue_raw_hardware_message( WM_LBUTTONDOWN, keystate, 0, PosX, PosY,
+        queue_raw_hardware_message( WM_LBUTTONDOWN, keystate, 0, mi->dx, mi->dy,
                                     mi->time, mi->dwExtraInfo );
     }
     if (mi->dwFlags & (!SwappedButtons? MOUSEEVENTF_LEFTUP : MOUSEEVENTF_RIGHTUP))
     {
         MouseButtonsStates[0] = FALSE;
-        queue_raw_hardware_message( WM_LBUTTONUP, keystate, 0, PosX, PosY,
+        queue_raw_hardware_message( WM_LBUTTONUP, keystate, 0, mi->dx, mi->dy,
                                     mi->time, mi->dwExtraInfo );
     }
     if (mi->dwFlags & (!SwappedButtons? MOUSEEVENTF_RIGHTDOWN : MOUSEEVENTF_LEFTDOWN))
     {
         MouseButtonsStates[2] = AsyncMouseButtonsStates[2] = TRUE;
-        queue_raw_hardware_message( WM_RBUTTONDOWN, keystate, 0, PosX, PosY,
+        queue_raw_hardware_message( WM_RBUTTONDOWN, keystate, 0, mi->dx, mi->dy,
                                     mi->time, mi->dwExtraInfo );
     }
     if (mi->dwFlags & (!SwappedButtons? MOUSEEVENTF_RIGHTUP : MOUSEEVENTF_LEFTUP))
     {
         MouseButtonsStates[2] = FALSE;
-        queue_raw_hardware_message( WM_RBUTTONUP, keystate, 0, PosX, PosY,
+        queue_raw_hardware_message( WM_RBUTTONUP, keystate, 0, mi->dx, mi->dy,
                                     mi->time, mi->dwExtraInfo );
     }
     if (mi->dwFlags & MOUSEEVENTF_MIDDLEDOWN)
     {
         MouseButtonsStates[1] = AsyncMouseButtonsStates[1] = TRUE;
-        queue_raw_hardware_message( WM_MBUTTONDOWN, keystate, 0, PosX, PosY,
+        queue_raw_hardware_message( WM_MBUTTONDOWN, keystate, 0, mi->dx, mi->dy,
                                     mi->time, mi->dwExtraInfo );
     }
     if (mi->dwFlags & MOUSEEVENTF_MIDDLEUP)
     {
         MouseButtonsStates[1] = FALSE;
-        queue_raw_hardware_message( WM_MBUTTONUP, keystate, 0, PosX, PosY,
+        queue_raw_hardware_message( WM_MBUTTONUP, keystate, 0, mi->dx, mi->dy,
                                     mi->time, mi->dwExtraInfo );
     }
     if (mi->dwFlags & MOUSEEVENTF_WHEEL)
     {
         queue_raw_hardware_message( WM_MOUSEWHEEL, MAKELONG( keystate, mi->mouseData), 0,
-                                    PosX, PosY, mi->time, mi->dwExtraInfo );
+                                    mi->dx, mi->dy, mi->time, mi->dwExtraInfo );
     }
 }
 


-- 
Brad Campbell
                   /"\
Save the Forests   \ /     ASCII RIBBON CAMPAIGN
Burn a Greenie.     X      AGAINST HTML MAIL
                   / \




More information about the wine-devel mailing list