Browse Source

Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern. (#143)

Amend 0c6e260f7
ocornut 1 year ago
parent
commit
32a037c030
2 changed files with 4 additions and 0 deletions
  1. 2 0
      docs/CHANGELOG.txt
  2. 2 0
      imgui.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -60,6 +60,8 @@ Other changes:
 - TabBar, Style: added ImGuiTabBarFlags_DrawSelectedOverline option to draw an horizontal
   line over selected tabs to increase visibility. This is used by docking.
   Added corresponding ImGuiCol_TabSelectedOverline and ImGuiCol_TabDimmedSelectedOverline colors.
+- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern sets
+  active id so a multi-frame extern source doesn't interfere with hovered widgets. (#143)
 - Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan
   returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671)
   [@AndreiNego, @ocornut]

+ 2 - 0
imgui.cpp

@@ -13234,6 +13234,8 @@ bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags)
         window = NULL;
         source_id = ImHashStr("#SourceExtern");
         source_drag_active = true;
+        KeepAliveID(source_id);
+        SetActiveID(source_id, NULL);
     }
 
     IM_ASSERT(g.DragDropWithinTarget == false); // Can't nest BeginDragDropSource() and BeginDragDropTarget()