Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48569
Signed-off-by: Roman Pišl rpisl@seznam.cz --- dlls/ole32/ole2.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c index 757458ad20..9d404abba5 100644 --- a/dlls/ole32/ole2.c +++ b/dlls/ole32/ole2.c @@ -62,6 +62,7 @@ typedef struct tagTrackerWindowInfo DWORD dwOKEffect; DWORD* pdwEffect; BOOL trackingDone; + BOOL inTrackCall; HRESULT returnValue;
BOOL escPressed; @@ -767,6 +768,7 @@ HRESULT WINAPI DoDragDrop ( trackerInfo.pdwEffect = pdwEffect; trackerInfo.trackingDone = FALSE; trackerInfo.escPressed = FALSE; + trackerInfo.inTrackCall = FALSE; trackerInfo.curTargetHWND = 0; trackerInfo.curDragTarget = 0;
@@ -2163,7 +2165,11 @@ static LRESULT WINAPI OLEDD_DragTrackerWindowProc( { TrackerWindowInfo *trackerInfo = (TrackerWindowInfo*)GetWindowLongPtrA(hwnd, 0); if (trackerInfo->trackingDone) break; + if (trackerInfo->inTrackCall) break; + + trackerInfo->inTrackCall = TRUE; OLEDD_TrackStateChange(trackerInfo); + trackerInfo->inTrackCall = FALSE; break; } case WM_DESTROY: