From d55014fd8d4a287888ced79da5a22b8858b50d0b Mon Sep 17 00:00:00 2001 From: TaiseiHamaya <146906391+TaiseiHamaya@users.noreply.github.com> Date: Tue, 23 Dec 2025 02:33:46 +0900 Subject: [PATCH] Fixed a bug where the condition for determining whether the window is selected was incorrect. --- imgui.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 5a785cd61..4e37cfacb 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -7548,14 +7548,15 @@ void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar // Selected border const float border_size = window->WindowBorderSize; - if (border_size > 0.0f && title_bar_is_highlight && !(flags & ImGuiWindowFlags_NoTitleBar)) { - if (!window->DockIsActive || window->DockNode->IsFocused) { - const ImU32 border_selected_col = GetColorU32(ImGuiCol_WindowBorderSelected); - RenderWindowOuterSingleBorder(window, 0, border_selected_col, border_size); - RenderWindowOuterSingleBorder(window, 1, border_selected_col, border_size); - RenderWindowOuterSingleBorder(window, 2, border_selected_col, border_size); - RenderWindowOuterSingleBorder(window, 3, border_selected_col, border_size); - } + bool is_window_selected = border_size > 0.0f && title_bar_is_highlight && !(window->Flags & (ImGuiWindowFlags_NoNavFocus | ImGuiWindowFlags_MenuBar)); + is_window_selected &= (!window->DockIsActive || window->DockNode->IsFocused); + if (is_window_selected) + { + const ImU32 border_selected_col = GetColorU32(ImGuiCol_WindowBorderSelected); + RenderWindowOuterSingleBorder(window, 0, border_selected_col, border_size); + RenderWindowOuterSingleBorder(window, 1, border_selected_col, border_size); + RenderWindowOuterSingleBorder(window, 2, border_selected_col, border_size); + RenderWindowOuterSingleBorder(window, 3, border_selected_col, border_size); } } window->DC.NavLayerCurrent = ImGuiNavLayer_Main;