On Tue, 22 Apr 2025 21:09:58 GMT, Jeremy Wood <d...@openjdk.org> wrote:
>> This PR changes how the BorderLayout positions components when they don't >> fit inside a container. >> >> This should have no effect on BorderLayouts that match or exceed their >> preferred size. >> >> (The name of this PR/ticket is a little misleading: this in no way relates >> to `component.getMinimumSize()`.) >> >> Here is part of a comment in that ticket that sums up what this PR is trying >> to fix: >>> Instead of the South Component being placed partially offscreen as Windows >>> does, it is often placed on top of the North Component. Indeed, >>> BorderLayout.layoutContainer() always places the South Component flush with >>> the bottom of the Container and does not check if the Container is smaller >>> than the minimum size, or if the North and South Components overlap. >> >> Previously child components could: >> A. be assigned negative (x,y) coordinates >> B. be assigned negative widths or heights >> C. overlap other child components >> D. be assigned dimensions that don't fit inside the target container >> >> This PR will instead constrain certain values. Now child components may be >> given a width/height of zero pixels, but they should never show the 4 >> behaviors stated above. >> >> We encountered this basic problem last week at work (we could end up with a >> component with a negative height). Our work-around was more complex than >> this PR: we wrote a modified BorderLayout that would switch to using >> `component.getMinimumSize()` when the preferred size wouldn't fit. IMO that >> is a better option all-around, but it is dangerously invasive for an OpenJDK >> proposal. I'm happy to discuss that idea further, though, if anyone here >> disagrees. > > Jeremy Wood has updated the pull request incrementally with six additional > commits since the last revision: > > - Update > test/jdk/java/awt/BorderLayout/ConstrainedBorderLayoutChildrenTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> > - Update > test/jdk/java/awt/BorderLayout/ConstrainedBorderLayoutChildrenTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> > - Update > test/jdk/java/awt/BorderLayout/ConstrainedBorderLayoutChildrenTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> > - Update > test/jdk/java/awt/BorderLayout/ConstrainedBorderLayoutChildrenTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> > - Update > test/jdk/java/awt/BorderLayout/ConstrainedBorderLayoutChildrenTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> > - Update > test/jdk/java/awt/BorderLayout/ConstrainedBorderLayoutChildrenTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> That makes sense. Before I close this PR: 1. Is there any response to JDK-4811995 that would be acceptable? 2. If not: should that ticket be closed as cant/won't fix? 3. Should we leave a comment in BorderLayout#layoutContainer to document this topic for future readers? ------------- PR Comment: https://git.openjdk.org/jdk/pull/24772#issuecomment-2829439025