Fix my broken WM_MOUSEHOVER patch [Take 2]

Mike Hearn m.hearn at signal.qinetiq.com
Mon Dec 9 11:04:32 CST 2002


Mike Hearn (mike at theoretic.com)

ChangeLog:
	- Make WM_MOUSEHOVER coordinates client relative rather than screen
relative

Apologies for the repost, I'd forgotten to update my .cvsrc with the
unified diff option.

Index: windows/input.c
===================================================================
RCS file: /home/wine/wine/windows/input.c,v
retrieving revision 1.87
diff -u -r1.87 input.c
--- windows/input.c	3 Dec 2002 23:34:53 -0000	1.87
+++ windows/input.c	9 Dec 2002 16:57:26 -0000
@@ -931,6 +931,7 @@
 {
     int i = 0;
     POINT pos;
+    POINT posClient;
     HWND hwnd;
     INT hoverwidth = 0, hoverheight = 0;
 
@@ -970,8 +971,11 @@
             /* has the mouse hovered long enough? */
             if(TrackingList[i].iHoverTime <=
TrackingList[i].tme.dwHoverTime)
              {
+		posClient.x = pos.x;
+		posClient.y = pos.y;
+		ScreenToClient(hwnd, &posClient);
                 PostMessageW(TrackingList[i].tme.hwndTrack,
WM_MOUSEHOVER,
-                             get_key_state(), MAKELPARAM( pos.x, pos.y
));
+                             get_key_state(), MAKELPARAM( posClient.x,
posClient.y ));
 
                 /* stop tracking mouse hover */
                 TrackingList[i].tme.dwFlags ^= TME_HOVER;



-- 
Mike Hearn <m.hearn at signal.qinetiq.com>
QinetiQ - Malvern Technology Center




More information about the wine-patches mailing list