<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Hi,</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I have noticed inconsistent and confusing size/layout behaviour with Dialogs when changing min width or height (after shown).</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">The behaviour depends on whether changing min width/height on the Stage, or the DialogPane itself, and whether show() or showAndWait() is used.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">In summary:</div><div class="gmail_default" style="font-family:verdana,sans-serif"><ol><li>Set Stage mins + show()</li><ul><li>no bug</li></ul><li> Set Stage mins + showAndWait()</li><ul><li>improper layout: background applies only to label (i.e., size before re-size), button wrong position, re-sizing window fixes the problem</li></ul><li>3 Set DialogPane mins + show()</li><ul><li>min sizes are ignored, button is visible, until it comes into focus, and then the button disappears, you can find it if you resize window close to the mins set</li></ul><li>4 Set DialogPane mins + showAndWait()</li><ul><li>no bug</li></ul></ol></div><div class="gmail_default" style="font-family:verdana,sans-serif">It's happening in JFX23/24/25. Note, these may seem trivial/fixable, or you may ask "why would you do that?", but there are reasons I won't clutter the mail with.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Anyway, it's best presented with a set of examples and code.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Re points 1 and 2 above, exact same code, except red is showAndWait() and green is show():</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><img src="cid:ii_mcnvsu5r0" alt="image.png" width="562" height="208"></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Obviously, they should behave the same. Then slightly resize the red one:</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><img src="cid:ii_mcnvv3h31" alt="image.png" width="562" height="215"></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Examples 3 and 4 above -- again, same code. Purple is show(), yellow is showAndWait().</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><img src="cid:ii_mcnvw1912" alt="image.png" width="516" height="313"></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">After you close the yellow dialog:</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><img src="cid:ii_mcnw1blv4" alt="image.png" width="266" height="201"><br><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">They should be the same size from the outset.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">public class DialogBug extends Dialog<Boolean> {<br><br>    public DialogBug(final String s, boolean flip) {<br>        setTitle("Bug");<br>        setResizable(true);<br><br>        final DialogPane dp = getDialogPane();<br>        dp.setStyle(s);<br>        dp.getButtonTypes().add(ButtonType.CLOSE);<br>        dp.setContent(new Label("Content"));<br><br>        // Setting stage size causes the bug<br>        setOnShown(e -> {<br><br>            if (flip) {<br>                // Set stage sizes<br>                Stage st = (Stage) dp.getScene().getWindow();<br>                st.setMinHeight(260);<br>                st.setMinWidth(360);<br>            } else {<br>                // Set dialog sizes: note buttons disappear when you resize<br>                dp.setMinHeight(260);<br>                dp.setMinWidth(360);<br>            }<br>        });<br>    }<br><br>    public static class BugApp extends Application {<br>        @Override<br>        public void start(final Stage st) throws Exception {<br><br>            final boolean FLIP_ME = true; // make true for other bug<br><br>            if (FLIP_ME) {<br>                // Note: bug doesn't happen when using show() only. Stage is fully green on show.<br>                new DialogBug("-fx-background-color: green;", true).show(); // NO BUG<br><br>                // showAndWait presents the bug; background not fully drawn, button shifts on re-size<br>                new DialogBug("-fx-background-color: red;", true).showAndWait(); // BUG<br>            } else {<br>                // A different type of issue: two different sizes and button behaviour<br>                // Notice:<br>                // - same dialogs, different sizes<br>                // - how button in purple dialog shifts when yellow dialog pane is closed<br>                new DialogBug("-fx-background-color: purple;", false).show(); // BUG<br>                <br>                new DialogBug("-fx-background-color: yellow;", false).showAndWait(); // NO BUG<br>            }<br>        }<br>    }<br>}</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thoughts?</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Kind Regards,</div><div class="gmail_default" style="font-family:verdana,sans-serif">Cormac</div></div>