mirror of
https://github.com/ocornut/imgui.git
synced 2025-01-19 01:34:08 +01:00
Child Windows: adjust resizing limits to match window padding rather than inner clipping rectangle. (#7440)
This commit is contained in:
parent
515b437c08
commit
742e53434f
@ -55,10 +55,11 @@ Other changes:
|
|||||||
- Windows: Scrollbar visibility decision uses current size when both size and contents
|
- Windows: Scrollbar visibility decision uses current size when both size and contents
|
||||||
size are submitted by API. (#7252)
|
size are submitted by API. (#7252)
|
||||||
- Windows: Double-click to collapse may be disabled via key-ownership mechanism. (#7369)
|
- 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.
|
- Windows: BeginChild(): Extend outer resize borders to the edges when there are no corner
|
||||||
Essentially affects resizable child windows. (#7440, #1710) [@cfillion]
|
grips. Essentially affects resizable child windows. (#7440, #1710) [@cfillion]
|
||||||
- Windows: Resizing logic for child windows evaluates whether per-axis clamping should be
|
- Windows: BeginChild(): Resizing logic for child windows evaluates whether per-axis clamping
|
||||||
applied based on parent scrollbars, not child scrollbars. (#7440, #1710) [@cfillion]
|
should be applied based on parent scrollbars, not child scrollbars. (#7440, #1710) [@cfillion]
|
||||||
|
Adjust those resizing limits to match window padding rather than inner clipping rectangle.
|
||||||
- Tables: Angled headers: fixed border hit box extending beyond when used within
|
- Tables: Angled headers: fixed border hit box extending beyond when used within
|
||||||
non-scrollable tables. (#7416) [@cfillion]
|
non-scrollable tables. (#7416) [@cfillion]
|
||||||
- Tables: Angled headers: fixed borders not moving back up after TableAngleHeadersRow()
|
- Tables: Angled headers: fixed borders not moving back up after TableAngleHeadersRow()
|
||||||
|
@ -6030,11 +6030,12 @@ static int ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& si
|
|||||||
if (flags & ImGuiWindowFlags_ChildWindow) // Clamp resizing of childs within parent
|
if (flags & ImGuiWindowFlags_ChildWindow) // Clamp resizing of childs within parent
|
||||||
{
|
{
|
||||||
ImGuiWindowFlags parent_flags = window->ParentWindow->Flags;
|
ImGuiWindowFlags parent_flags = window->ParentWindow->Flags;
|
||||||
const ImRect parent_rect = window->ParentWindow->InnerClipRect;
|
ImRect border_limit_rect = window->ParentWindow->InnerRect;
|
||||||
|
border_limit_rect.Expand(ImVec2(-ImMax(window->WindowPadding.x, window->WindowBorderSize), -ImMax(window->WindowPadding.y, window->WindowBorderSize)));
|
||||||
if ((parent_flags & (ImGuiWindowFlags_HorizontalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar)) == 0 || (parent_flags & ImGuiWindowFlags_NoScrollbar))
|
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);
|
border_target.x = ImClamp(border_target.x, border_limit_rect.Min.x, border_limit_rect.Max.x);
|
||||||
if (parent_flags & ImGuiWindowFlags_NoScrollbar)
|
if (parent_flags & ImGuiWindowFlags_NoScrollbar)
|
||||||
border_target.y = ImClamp(border_target.y, parent_rect.Min.y, parent_rect.Max.y);
|
border_target.y = ImClamp(border_target.y, border_limit_rect.Min.y, border_limit_rect.Max.y);
|
||||||
}
|
}
|
||||||
if (!ignore_resize)
|
if (!ignore_resize)
|
||||||
CalcResizePosSizeFromAnyCorner(window, border_target, ImMin(def.SegmentN1, def.SegmentN2), &pos_target, &size_target);
|
CalcResizePosSizeFromAnyCorner(window, border_target, ImMin(def.SegmentN1, def.SegmentN2), &pos_target, &size_target);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user