Child windows: look at the parent window's flags to decide whether to clamp child resizes. (#7440, #1710)
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 12aa33f..e6f53f1 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -57,6 +57,8 @@
 - Windows: Double-click to collapse may be disabled via key-ownership mechanism. (#7369)
 - Windows: Extend outer resize borders to the edges when there are no corner grips.
   Essentially affects resizable child windows. (#7440, #1710) [@cfillion]
+- Windows: Resizing logic for child windows evaluates whether per-axis clamping should be
+  applied based on parent scrollbars, not child scrollbars. (#7440, #1710) [@cfillion]
 - Tables: Angled headers: fixed border hit box extending beyond when used within
   non-scrollable tables. (#7416) [@cfillion]
 - Tables: Angled headers: fixed borders not moving back up after TableAngleHeadersRow()
diff --git a/imgui.cpp b/imgui.cpp
index c7da9d3..bf5765b 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -6029,10 +6029,12 @@
             border_target = ImClamp(border_target, clamp_min, clamp_max);
             if (flags & ImGuiWindowFlags_ChildWindow) // Clamp resizing of childs within parent
             {
-                if ((flags & (ImGuiWindowFlags_HorizontalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar)) == 0 || (flags & ImGuiWindowFlags_NoScrollbar))
-                    border_target.x = ImClamp(border_target.x, window->ParentWindow->InnerClipRect.Min.x, window->ParentWindow->InnerClipRect.Max.x);
-                if (flags & ImGuiWindowFlags_NoScrollbar)
-                    border_target.y = ImClamp(border_target.y, window->ParentWindow->InnerClipRect.Min.y, window->ParentWindow->InnerClipRect.Max.y);
+                ImGuiWindowFlags parent_flags = window->ParentWindow->Flags;
+                const ImRect parent_rect = window->ParentWindow->InnerClipRect;
+                if ((parent_flags & (ImGuiWindowFlags_HorizontalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar)) == 0 || (parent_flags & ImGuiWindowFlags_NoScrollbar))
+                    border_target.x = ImClamp(border_target.x, parent_rect.Min.x, parent_rect.Max.x);
+                if (parent_flags & ImGuiWindowFlags_NoScrollbar)
+                    border_target.y = ImClamp(border_target.y, parent_rect.Min.y, parent_rect.Max.y);
             }
             if (!ignore_resize)
                 CalcResizePosSizeFromAnyCorner(window, border_target, ImMin(def.SegmentN1, def.SegmentN2), &pos_target, &size_target);