فهرست منبع

Drag and Drop: fixed GetDragDropPayload() returning a non-NULL value before payload is submitted. (#5910, #143)

+ Added test "widgets_dragdrop_new_payloads" in Test Suite.
ocornut 2 سال پیش
والد
کامیت
856c6314ec
2فایلهای تغییر یافته به همراه4 افزوده شده و 1 حذف شده
  1. 3 0
      docs/CHANGELOG.txt
  2. 1 1
      imgui.cpp

+ 3 - 0
docs/CHANGELOG.txt

@@ -42,6 +42,9 @@ HOW TO UPDATE?
   inside a collapsed/culled window and IMGUI_DISABLE_OBSOLETE_FUNCTIONS is enabled. (#5548, #5911)
 - ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left to
   move the color button on the left side (regression introduced in 1.88 WIP 2022/02/28). (#5912)
+- Drag and Drop: fixed GetDragDropPayload() returning a non-NULL value if a drag source is
+  active but a payload hasn't been submitted yet. This is convenient to detect new payload
+  from within a drag source handler. (#5910, #143)
 - Backends: GLFW: cancel out errors emitted by glfwGetKeyName() when a name is missing. (#5908)
 
 

+ 1 - 1
imgui.cpp

@@ -12023,7 +12023,7 @@ void ImGui::RenderDragDropTargetRect(const ImRect& bb)
 const ImGuiPayload* ImGui::GetDragDropPayload()
 {
     ImGuiContext& g = *GImGui;
-    return g.DragDropActive ? &g.DragDropPayload : NULL;
+    return (g.DragDropActive && g.DragDropPayload.DataFrameCount != -1) ? &g.DragDropPayload : NULL;
 }
 
 // We don't really use/need this now, but added it for the sake of consistency and because we might need it later.