2
0
Эх сурвалжийг харах

Docking: Fixed floating docked nodes not being clamped into viewport workrect to stay reachable when g.ConfigWindowsMoveFromTitleBarOnly is set and multi-viewports are disabled. (#5044)

ocornut 3 жил өмнө
parent
commit
64519c6875
2 өөрчлөгдсөн 4 нэмэгдсэн , 2 устгасан
  1. 2 0
      docs/CHANGELOG.txt
  2. 2 2
      imgui.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -132,6 +132,8 @@ Other Changes:
 
 Docking+Viewports Branch:
 
+- Docking: Fixed floating docked nodes not being clamped into viewport workrect to stay reachable
+  when g.ConfigWindowsMoveFromTitleBarOnly is set and multi-viewports are disabled. (#5044)
 - Viewports: Fixed main viewport size not matching ImDrawData::DisplaySize for one frame during resize
   when multi-viewports are disabled. (#4900)
 

+ 2 - 2
imgui.cpp

@@ -6015,8 +6015,8 @@ static inline void ClampWindowRect(ImGuiWindow* window, const ImRect& visibility
 {
     ImGuiContext& g = *GImGui;
     ImVec2 size_for_clamping = window->Size;
-    if (g.IO.ConfigWindowsMoveFromTitleBarOnly && !(window->Flags & ImGuiWindowFlags_NoTitleBar))
-        size_for_clamping.y = window->TitleBarHeight();
+    if (g.IO.ConfigWindowsMoveFromTitleBarOnly && (!(window->Flags & ImGuiWindowFlags_NoTitleBar) || window->DockNodeAsHost))
+        size_for_clamping.y = ImGui::GetFrameHeight(); // Not using window->TitleBarHeight() as DockNodeAsHost will report 0.0f here.
     window->Pos = ImClamp(window->Pos, visibility_rect.Min - size_for_clamping, visibility_rect.Max);
 }