ソースを参照

Docking, Viewport: Fixed a rare edge-case if the window targetted by CTRL+Tab stops being rendered.

ocornut 5 年 前
コミット
831e2c920e
1 ファイル変更2 行追加1 行削除
  1. 2 1
      imgui.cpp

+ 2 - 1
imgui.cpp

@@ -4386,9 +4386,10 @@ static void ImGui::EndFrameDrawDimmedBackgrounds()
         }
         }
 
 
     // Draw modal whitening background between CTRL-TAB list
     // Draw modal whitening background between CTRL-TAB list
-    if (dim_bg_for_window_list)
+    if (dim_bg_for_window_list && g.NavWindowingTargetAnim->Active)
     {
     {
         // Choose a draw list that will be front-most across all our children
         // Choose a draw list that will be front-most across all our children
+        // In the unlikely case that the window wasn't made active we can't rely on its drawlist and skip rendering all-together.
         ImGuiWindow* window = g.NavWindowingTargetAnim;
         ImGuiWindow* window = g.NavWindowingTargetAnim;
         ImDrawList* draw_list = FindFrontMostVisibleChildWindow(window->RootWindow)->DrawList;
         ImDrawList* draw_list = FindFrontMostVisibleChildWindow(window->RootWindow)->DrawList;
         draw_list->PushClipRectFullScreen();
         draw_list->PushClipRectFullScreen();