2
0
Эх сурвалжийг харах

Docking: Clicking on the right-most close button of a docking node closes all windows. (#4186)

ocornut 4 жил өмнө
parent
commit
5e528d9eea
2 өөрчлөгдсөн 6 нэмэгдсэн , 5 устгасан
  1. 1 0
      docs/CHANGELOG.txt
  2. 5 5
      imgui.cpp

+ 1 - 0
docs/CHANGELOG.txt

@@ -111,6 +111,7 @@ Other Changes:
 
 Docking+Viewports Branch:
 
+- Docking: Clicking on the right-most close button of a docking node closes all windows. (#4186)
 - Docking: Fix IsWindowAppearing() and ImGuiCond_Appearing on docked windows. (#4177, #3982, #1497, #1061)
 
 

+ 5 - 5
imgui.cpp

@@ -14027,11 +14027,11 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w
             PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_Text] * ImVec4(1.0f,1.0f,1.0f,0.4f));
         }
         if (CloseButton(host_window->GetID("#CLOSE"), close_button_pos))
-            if (ImGuiTabItem* tab = TabBarFindTabByID(tab_bar, tab_bar->VisibleTabId))
-            {
-                node->WantCloseTabId = tab->ID;
-                TabBarCloseTab(tab_bar, tab);
-            }
+        {
+            node->WantCloseAll = true;
+            for (int n = 0; n < tab_bar->Tabs.Size; n++)
+                TabBarCloseTab(tab_bar, &tab_bar->Tabs[n]);
+        }
         //if (IsItemActive())
         //    focus_tab_id = tab_bar->SelectedTabId;
         if (!close_button_is_enabled)