|
|
@ -4444,11 +4444,7 @@ void ImGui::EndFrame() |
|
|
|
|
|
|
|
// Drag and Drop: Elapse payload at the end of the frame if mouse has been released
|
|
|
|
if (g.DragDropActive && g.DragDropPayload.DataFrameCount + 1 < g.FrameCount && !IsMouseDown(g.DragDropMouseButton)) |
|
|
|
{ |
|
|
|
ClearDragDrop(); |
|
|
|
g.DragDropPayloadBufHeap.clear(); |
|
|
|
memset(&g.DragDropPayloadBufLocal, 0, sizeof(g.DragDropPayloadBufLocal)); |
|
|
|
} |
|
|
|
|
|
|
|
// Drag and Drop: Fallback for source tooltip. This is not ideal but better than nothing.
|
|
|
|
if (g.DragDropActive && g.DragDropSourceFrameCount < g.FrameCount) |
|
|
@ -13629,6 +13625,9 @@ void ImGui::ClearDragDrop() |
|
|
|
g.DragDropAcceptIdCurr = g.DragDropAcceptIdPrev = 0; |
|
|
|
g.DragDropAcceptIdCurrRectSurface = FLT_MAX; |
|
|
|
g.DragDropAcceptFrameCount = -1; |
|
|
|
|
|
|
|
g.DragDropPayloadBufHeap.clear(); |
|
|
|
memset(&g.DragDropPayloadBufLocal, 0, sizeof(g.DragDropPayloadBufLocal)); |
|
|
|
} |
|
|
|
|
|
|
|
// Call when current ID is active.
|
|
|
@ -13802,6 +13801,8 @@ bool ImGui::BeginDragDropTargetCustom(const ImRect& bb, ImGuiID id) |
|
|
|
IM_ASSERT(id != 0); |
|
|
|
if (!IsMouseHoveringRect(bb.Min, bb.Max) || (id == g.DragDropPayload.SourceId)) |
|
|
|
return false; |
|
|
|
if (window->SkipItems) |
|
|
|
return false; |
|
|
|
|
|
|
|
IM_ASSERT(g.DragDropWithinSourceOrTarget == false); |
|
|
|
g.DragDropTargetRect = bb; |
|
|
|