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

This commit is contained in:
ocornut 2021-06-03 17:22:18 +02:00
parent f03ab2a5c5
commit 5e528d9eea
2 changed files with 6 additions and 5 deletions

View File

@ -111,6 +111,7 @@ Other Changes:
Docking+Viewports Branch: 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) - Docking: Fix IsWindowAppearing() and ImGuiCond_Appearing on docked windows. (#4177, #3982, #1497, #1061)

View File

@ -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)); 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 (CloseButton(host_window->GetID("#CLOSE"), close_button_pos))
if (ImGuiTabItem* tab = TabBarFindTabByID(tab_bar, tab_bar->VisibleTabId)) {
{ node->WantCloseAll = true;
node->WantCloseTabId = tab->ID; for (int n = 0; n < tab_bar->Tabs.Size; n++)
TabBarCloseTab(tab_bar, tab); TabBarCloseTab(tab_bar, &tab_bar->Tabs[n]);
} }
//if (IsItemActive()) //if (IsItemActive())
// focus_tab_id = tab_bar->SelectedTabId; // focus_tab_id = tab_bar->SelectedTabId;
if (!close_button_is_enabled) if (!close_button_is_enabled)