From 81cfcb8c1fed1e4dac8bcdc059ce811c17b6194c Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 30 Jul 2026 13:56:21 +0200 Subject: [PATCH] Docking: (very minor) Scaling of drop boxes padding, rounding, thickness. --- imgui.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 235a28075..528b26f3e 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -20339,24 +20339,26 @@ static void ImGui::DockNodePreviewDockRender(ImGuiWindow* host_window, ImGuiDock } // Display drop boxes - const float overlay_rounding = ImMax(3.0f, g.Style.FrameRounding); + const float scale = g.Style._MainScale; // FIXME-DPI + const float overlay_rounding = ImMax((float)(int)(3.0f * scale), g.Style.FrameRounding); for (int dir = ImGuiDir_None; dir < ImGuiDir_COUNT; dir++) { if (!data->DropRectsDraw[dir + 1].IsInverted()) { ImRect draw_r = data->DropRectsDraw[dir + 1]; ImRect draw_r_in = draw_r; - draw_r_in.Expand(-2.0f); + draw_r_in.Expand((float)(int)(-2.0f * scale)); ImU32 overlay_col = (data->SplitDir == (ImGuiDir)dir && data->IsSplitDirExplicit) ? overlay_col_drop_hovered : overlay_col_drop; + float thickness = (float)(int)(1.0f * scale); for (int overlay_n = 0; overlay_n < overlay_draw_lists_count; overlay_n++) { ImVec2 center = ImFloor(draw_r_in.GetCenter()); overlay_draw_lists[overlay_n]->AddRectFilled(draw_r.Min, draw_r.Max, overlay_col, overlay_rounding); - overlay_draw_lists[overlay_n]->AddRect(draw_r_in.Min, draw_r_in.Max, overlay_col_lines, overlay_rounding); + overlay_draw_lists[overlay_n]->AddRect(draw_r_in.Min, draw_r_in.Max, overlay_col_lines, overlay_rounding, thickness); if (dir == ImGuiDir_Left || dir == ImGuiDir_Right) - overlay_draw_lists[overlay_n]->AddLine(ImVec2(center.x, draw_r_in.Min.y), ImVec2(center.x, draw_r_in.Max.y), overlay_col_lines); + overlay_draw_lists[overlay_n]->AddLineV(center.x, draw_r_in.Min.y, draw_r_in.Max.y, overlay_col_lines, thickness); if (dir == ImGuiDir_Up || dir == ImGuiDir_Down) - overlay_draw_lists[overlay_n]->AddLine(ImVec2(draw_r_in.Min.x, center.y), ImVec2(draw_r_in.Max.x, center.y), overlay_col_lines); + overlay_draw_lists[overlay_n]->AddLineH(draw_r_in.Min.x, draw_r_in.Max.x, center.y, overlay_col_lines, thickness); } }