Tab Bar: Hide tab item close button while dragging a tab.
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index a25f469..5092f14 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -49,6 +49,7 @@
   rather than the Mouse Down+Up sequence, even if the _OpenOnArrow flag isn't set. This is standard behavior 
   and amends the change done in 1.76 which only affected cases were _OpenOnArrow flag was set. 
   (This is also necessary to support full multi/range-select/drag and drop operations.)
+- Tab Bar: Hide tab item close button while dragging a tab.
 - Metrics: Various tweaks, listing windows front-to-back, greying inactive items when possible.
 - Demo: Add simple InputText() callbacks demo (aside from the more elaborate ones in 'Examples->Console').
 - Examples: Vulkan: Reworked buffer resize handling, fix for Linux/X11. (#3390, #2626) [@RoryO]
diff --git a/docs/TODO.txt b/docs/TODO.txt
index ca026df..e1b1f3e 100644
--- a/docs/TODO.txt
+++ b/docs/TODO.txt
@@ -169,7 +169,6 @@
  - tabs: "there is currently a problem because TabItem() will try to submit their own tooltip after 0.50 second, and this will have the effect of making your tooltip flicker once." -> tooltip priority work
  - tabs: close button tends to overlap unsaved-document star 
  - tabs: consider showing the star at the same spot as the close button, like VS Code does.
- - tabs: while dragging/reordering a tab, close button decoration shouldn't appear on other tabs
  - tabs: make EndTabBar fail if users doesn't respect BeginTabBar return value, for consistency/future-proofing.
  - tabs: persistent order/focus in BeginTabBar() api (#261, #351)
  - tabs: TabItem could honor SetNextItemWidth()?
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index 2ae40d9..6dd2eff 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -7453,7 +7453,8 @@
         SetItemAllowOverlap();
 
     // Drag and drop: re-order tabs
-    if (held && !tab_appearing && IsMouseDragging(0))
+    const bool is_dragging = (held && !tab_appearing && IsMouseDragging(0));
+    if (is_dragging)
     {
         if (!g.DragDropActive && (tab_bar->Flags & ImGuiTabBarFlags_Reorderable))
         {
@@ -7496,7 +7497,7 @@
         flags |= ImGuiTabItemFlags_NoCloseWithMiddleMouseButton;
 
     // Render tab label, process close button
-    const ImGuiID close_button_id = p_open ? window->GetID((void*)((intptr_t)id + 1)) : 0;
+    const ImGuiID close_button_id = (p_open && !is_dragging) ? window->GetID((void*)((intptr_t)id + 1)) : 0;
     bool just_closed = TabItemLabelAndCloseButton(display_draw_list, bb, flags, tab_bar->FramePadding, label, id, close_button_id, tab_contents_visible);
     if (just_closed && p_open != NULL)
     {