Module: wine Branch: master Commit: 95c57c618affa2ff77a7a54798c4ce6b2dd1234c URL: http://source.winehq.org/git/wine.git/?a=commit;h=95c57c618affa2ff77a7a54798...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Jan 15 13:39:31 2015 +0100
ole32: Only change DoDragDrop return value on IDropTarget::Drop failure.
---
dlls/ole32/ole2.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c index 786fdb4..f6c6c10 100644 --- a/dlls/ole32/ole2.c +++ b/dlls/ole32/ole2.c @@ -2407,11 +2407,12 @@ static void OLEDD_TrackStateChange(TrackerWindowInfo* trackerInfo) */ case DRAGDROP_S_DROP: if (*trackerInfo->pdwEffect != DROPEFFECT_NONE) - trackerInfo->returnValue = IDropTarget_Drop(trackerInfo->curDragTarget, - trackerInfo->dataObject, - trackerInfo->dwKeyState, - trackerInfo->curMousePos, - trackerInfo->pdwEffect); + { + hr = IDropTarget_Drop(trackerInfo->curDragTarget, trackerInfo->dataObject, + trackerInfo->dwKeyState, trackerInfo->curMousePos, trackerInfo->pdwEffect); + if (FAILED(hr)) + trackerInfo->returnValue = hr; + } else IDropTarget_DragLeave(trackerInfo->curDragTarget); break;