mirror of
https://github.com/ocornut/imgui.git
synced 2026-02-05 04:10:07 +00:00
Docking: Fixed amending into an existing tab bar from rendering invisible items. (#5515, amend b16f738d #2700, #2539)
Commit b16f738d left us with a "current" channel 0 which seems inadequate. Undoing that, assuming default is always 1, code filling bg color does a switch. Only DockContextEndFrame() leave it at 0 and it's not particularly necessary.
This commit is contained in:
parent
0abe7d1cc5
commit
b12e056c21
2 changed files with 3 additions and 11 deletions
13
imgui.cpp
13
imgui.cpp
|
|
@ -6205,14 +6205,12 @@ void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar
|
|||
}
|
||||
|
||||
// Render, for docked windows and host windows we ensure bg goes before decorations
|
||||
if (window->DockIsActive)
|
||||
window->DockNode->LastBgColor = bg_col;
|
||||
ImDrawList* bg_draw_list = window->DockIsActive ? window->DockNode->HostWindow->DrawList : window->DrawList;
|
||||
if (window->DockIsActive || (flags & ImGuiWindowFlags_DockNodeHost))
|
||||
bg_draw_list->ChannelsSetCurrent(DOCKING_HOST_DRAW_CHANNEL_BG);
|
||||
if (window->DockIsActive)
|
||||
window->DockNode->LastBgColor = bg_col;
|
||||
|
||||
bg_draw_list->AddRectFilled(window->Pos + ImVec2(0, window->TitleBarHeight()), window->Pos + window->Size, bg_col, window_rounding, (flags & ImGuiWindowFlags_NoTitleBar) ? 0 : ImDrawFlags_RoundCornersBottom);
|
||||
|
||||
if (window->DockIsActive || (flags & ImGuiWindowFlags_DockNodeHost))
|
||||
bg_draw_list->ChannelsSetCurrent(DOCKING_HOST_DRAW_CHANNEL_FG);
|
||||
}
|
||||
|
|
@ -15218,7 +15216,6 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node)
|
|||
// Update position/size, process and draw resizing splitters
|
||||
if (node->IsRootNode() && host_window)
|
||||
{
|
||||
host_window->DrawList->ChannelsSetCurrent(DOCKING_HOST_DRAW_CHANNEL_FG);
|
||||
DockNodeTreeUpdatePosSize(node, host_window->Pos, host_window->Size);
|
||||
DockNodeTreeUpdateSplitter(node);
|
||||
}
|
||||
|
|
@ -15283,13 +15280,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node)
|
|||
|
||||
// Render outer borders last (after the tab bar)
|
||||
if (node->IsRootNode())
|
||||
{
|
||||
host_window->DrawList->ChannelsSetCurrent(DOCKING_HOST_DRAW_CHANNEL_FG);
|
||||
RenderWindowOuterBorders(host_window);
|
||||
}
|
||||
|
||||
// Further rendering (= hosted windows background) will be drawn on layer 0
|
||||
host_window->DrawList->ChannelsSetCurrent(DOCKING_HOST_DRAW_CHANNEL_BG);
|
||||
}
|
||||
|
||||
// End host window
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue