Browse Source

Docking: fixed settings load issue when mouse wheeling. (#4310)

ocornut 4 years ago
parent
commit
58f5092c53
2 changed files with 10 additions and 1 deletions
  1. 5 0
      docs/CHANGELOG.txt
  2. 5 1
      imgui.cpp

+ 5 - 0
docs/CHANGELOG.txt

@@ -99,6 +99,11 @@ Other changes:
   Note that Linux/Mac still have inconsistent support for multi-viewports. If you want to help see https://github.com/ocornut/imgui/issues/2117.
   Note that Linux/Mac still have inconsistent support for multi-viewports. If you want to help see https://github.com/ocornut/imgui/issues/2117.
 
 
 
 
+Docking+Viewports Branch:
+
+- Docking: fixed settings load issue when mouse wheeling. (#4310)
+
+
 -----------------------------------------------------------------------
 -----------------------------------------------------------------------
  VERSION 1.84.1 (Released 2021-08-20)
  VERSION 1.84.1 (Released 2021-08-20)
 -----------------------------------------------------------------------
 -----------------------------------------------------------------------

+ 5 - 1
imgui.cpp

@@ -13111,7 +13111,10 @@ void ImGui::DockContextProcessUndockNode(ImGuiContext* ctx, ImGuiDockNode* node)
         DockNodeMoveWindows(new_node, node);
         DockNodeMoveWindows(new_node, node);
         DockSettingsRenameNodeReferences(node->ID, new_node->ID);
         DockSettingsRenameNodeReferences(node->ID, new_node->ID);
         for (int n = 0; n < new_node->Windows.Size; n++)
         for (int n = 0; n < new_node->Windows.Size; n++)
+        {
+            new_node->Windows[n]->Flags &= ~ImGuiWindowFlags_ChildWindow;
             UpdateWindowParentAndRootLinks(new_node->Windows[n], new_node->Windows[n]->Flags, NULL);
             UpdateWindowParentAndRootLinks(new_node->Windows[n], new_node->Windows[n]->Flags, NULL);
+        }
         node = new_node;
         node = new_node;
     }
     }
     else
     else
@@ -13293,7 +13296,8 @@ static void ImGui::DockNodeRemoveWindow(ImGuiDockNode* node, ImGuiWindow* window
     window->DockNode = NULL;
     window->DockNode = NULL;
     window->DockIsActive = window->DockTabWantClose = false;
     window->DockIsActive = window->DockTabWantClose = false;
     window->DockId = save_dock_id;
     window->DockId = save_dock_id;
-    UpdateWindowParentAndRootLinks(window, window->Flags & ~ImGuiWindowFlags_ChildWindow, NULL); // Update immediately
+    window->Flags &= ~ImGuiWindowFlags_ChildWindow;
+    UpdateWindowParentAndRootLinks(window, window->Flags, NULL); // Update immediately
 
 
     // Remove window
     // Remove window
     bool erased = false;
     bool erased = false;