diff --git a/Source/Engine/Platform/Windows/WindowsWindow.DragDrop.cpp b/Source/Engine/Platform/Windows/WindowsWindow.DragDrop.cpp index 1aa5c903e..61d4afd31 100644 --- a/Source/Engine/Platform/Windows/WindowsWindow.DragDrop.cpp +++ b/Source/Engine/Platform/Windows/WindowsWindow.DragDrop.cpp @@ -13,13 +13,13 @@ #include "Engine/Core/Log.h" #include "Engine/Platform/IGuiData.h" #include "Engine/Platform/Base/DragDropHelper.h" +#include "Engine/Graphics/GPUDevice.h" #include "Engine/Input/Input.h" #include "Engine/Input/Mouse.h" #endif #include "Engine/Platform/Win32/IncludeWindowsHeaders.h" #include - #if USE_EDITOR #include #include @@ -648,6 +648,7 @@ HRESULT Window::Drop(Windows::IDataObject* pDataObj, Windows::DWORD grfKeyState, ::ScreenToClient((HWND)_handle, &p); GuiDragDropData.Init((IDataObject*)pDataObj); DragDropEffect effect = DragDropEffect::None; + ScopeLock gpuLock(GPUDevice::Instance->Locker); // Avoid issues when DoDragDropJob is during frame painting OnDragDrop(&GuiDragDropData, Float2(static_cast(p.x), static_cast(p.y)), effect); *pdwEffect = dropEffect2OleEnum(effect); return S_OK;