mirror of
https://github.com/Drezil/imgui.git
synced 2025-07-05 20:48:46 +02:00
Docking: Can undock from the small triangle button. (#2109,. #2645)
This commit is contained in:
14
imgui.cpp
14
imgui.cpp
@ -5511,18 +5511,22 @@ void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar
|
||||
window->DrawList->AddLine(menu_bar_rect.GetBL(), menu_bar_rect.GetBR(), GetColorU32(ImGuiCol_Border), style.FrameBorderSize);
|
||||
}
|
||||
|
||||
// Docking: Unhide tab bar (small triangle in the corner)
|
||||
if (window->DockNode && window->DockNode->IsHiddenTabBar() && !window->DockNode->IsNoTabBar())
|
||||
// Docking: Unhide tab bar (small triangle in the corner), drag from small triangle to quickly undock
|
||||
ImGuiDockNode* node = window->DockNode;
|
||||
if (node && window->DockIsActive && node->IsHiddenTabBar() && !node->IsNoTabBar())
|
||||
{
|
||||
float unhide_sz_draw = ImFloor(g.FontSize * 0.70f);
|
||||
float unhide_sz_hit = ImFloor(g.FontSize * 0.55f);
|
||||
ImVec2 p = window->DockNode->Pos;
|
||||
ImVec2 p = node->Pos;
|
||||
ImRect r(p, p + ImVec2(unhide_sz_hit, unhide_sz_hit));
|
||||
bool hovered, held;
|
||||
if (ButtonBehavior(r, window->GetID("#UNHIDE"), &hovered, &held, ImGuiButtonFlags_FlattenChildren))
|
||||
window->DockNode->WantHiddenTabBarToggle = true;
|
||||
node->WantHiddenTabBarToggle = true;
|
||||
else if (held && IsMouseDragging(0))
|
||||
StartMouseDragFromTitleBar(window, node, true);
|
||||
|
||||
// FIXME-DOCK: Ideally we'd use ImGuiCol_TitleBgActive/ImGuiCol_TitleBg here, but neither is guaranteed to be visible enough at this sort of size..
|
||||
ImU32 col = GetColorU32(((held && hovered) || (window->DockNode->IsFocused && !hovered)) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);
|
||||
ImU32 col = GetColorU32(((held && hovered) || (node->IsFocused && !hovered)) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button);
|
||||
window->DrawList->AddTriangleFilled(p, p + ImVec2(unhide_sz_draw, 0.0f), p + ImVec2(0.0f, unhide_sz_draw), col);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user