浏览代码

Docking: Fixed one-frame flickering on reappearing windows binding to a dock node where a later-submitted window was already bound.

ocornut 2 年之前
父节点
当前提交
7d81a166f9
共有 2 个文件被更改,包括 3 次插入1 次删除
  1. 2 0
      docs/CHANGELOG.txt
  2. 1 1
      imgui.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -153,6 +153,8 @@ Docking+Viewports Branch:
 
 
 - Viewports: Closing a viewport via OS/platform means (e.g. OS close button or task-bar menu),
 - Viewports: Closing a viewport via OS/platform means (e.g. OS close button or task-bar menu),
   mark all windows in this viewport as closed.
   mark all windows in this viewport as closed.
+- Docking: Fixed one-frame flickering on reappearing windows binding to a dock node
+  where a later-submitted window was already bound.
 - Docking: Fixed dragging from title-bar empty space (regression from 1.88 related to
 - Docking: Fixed dragging from title-bar empty space (regression from 1.88 related to
   keeping ID alive when calling low-level ButtonBehavior() directly). (#5181, #2645)
   keeping ID alive when calling low-level ButtonBehavior() directly). (#5181, #2645)
 - Docking: [Internal] DockBuilderDockWindow() API calls don't clear docking order
 - Docking: [Internal] DockBuilderDockWindow() API calls don't clear docking order

+ 1 - 1
imgui.cpp

@@ -18407,7 +18407,7 @@ void ImGui::BeginDocked(ImGuiWindow* window, bool* p_open)
     {
     {
         if (node->State == ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing)
         if (node->State == ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing)
             window->DockIsActive = true;
             window->DockIsActive = true;
-        if (node->Windows.Size > 1)
+        if (node->Windows.Size > 1 && window->Appearing) // Only hide appearing window
             DockNodeHideWindowDuringHostWindowCreation(window);
             DockNodeHideWindowDuringHostWindowCreation(window);
         return;
         return;
     }
     }