user32[3/3]: when calling TrackMouseEvent with TME_LEAVE the dwHoverTime may be uninitialized

Mikołaj Zalewski mikolaj at zalewski.pl
Sat Oct 14 13:16:30 CDT 2006


-------------- next part --------------
diff --git a/dlls/user/input.c b/dlls/user/input.c
index c906f14..a4ae339 100644
--- a/dlls/user/input.c
+++ b/dlls/user/input.c
@@ -926,8 +926,9 @@ TrackMouseEvent (TRACKMOUSEEVENT *ptme)
 
     hover_time = ptme->dwHoverTime;
 
-    /* if HOVER_DEFAULT was specified replace this with the systems current value */
-    if (hover_time == HOVER_DEFAULT || hover_time == 0)
+    /* if HOVER_DEFAULT was specified replace this with the systems current value.
+     * TME_LEAVE doesn't need to specify hover time so use default */
+    if (hover_time == HOVER_DEFAULT || hover_time == 0 || !(ptme->dwHoverTime&TME_HOVER))
         SystemParametersInfoW(SPI_GETMOUSEHOVERTIME, 0, &hover_time, 0);
 
     GetCursorPos(&pos);
-- 
1.4.2.3


More information about the wine-patches mailing list