[PATCH 3/8] ole32: Release IDropTarget when the mouse leaves.
Huw Davies
huw at codeweavers.com
Tue Feb 23 04:09:29 CST 2016
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/ole32/ole2.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c
index 315f403..39cb57b 100644
--- a/dlls/ole32/ole2.c
+++ b/dlls/ole32/ole2.c
@@ -2264,7 +2264,12 @@ static void OLEDD_TrackStateChange(TrackerWindowInfo* trackerInfo)
* the new one.
*/
if (trackerInfo->curDragTarget)
+ {
IDropTarget_DragLeave(trackerInfo->curDragTarget);
+ IDropTarget_Release(trackerInfo->curDragTarget);
+ trackerInfo->curDragTarget = NULL;
+ trackerInfo->curTargetHWND = NULL;
+ }
/*
* Make sure we're hovering over a window.
@@ -2283,7 +2288,6 @@ static void OLEDD_TrackStateChange(TrackerWindowInfo* trackerInfo)
if (next_target_wnd) hwndNewTarget = next_target_wnd;
- if(trackerInfo->curDragTarget) IDropTarget_Release(trackerInfo->curDragTarget);
trackerInfo->curDragTarget = get_droptarget_pointer(hwndNewTarget);
/*
@@ -2307,15 +2311,6 @@ static void OLEDD_TrackStateChange(TrackerWindowInfo* trackerInfo)
}
}
}
- else
- {
- /*
- * The mouse is not over a window so we don't track anything.
- */
- trackerInfo->curTargetHWND = 0;
- if(trackerInfo->curDragTarget) IDropTarget_Release(trackerInfo->curDragTarget);
- trackerInfo->curDragTarget = 0;
- }
}
give_feedback( trackerInfo );
--
2.7.0
More information about the wine-patches
mailing list