<div dir="ltr">Hi Thiago,<div><br></div><div>Here is a reproducible example: <a href="https://github.com/craigraw/waylandtester">https://github.com/craigraw/waylandtester</a> </div><div><br></div><div>After further investigation, I have found that the following two conditions need to be true for the issue to occur:</div><div><ol><li>The dialog is owned by the primary stage (with initOwner)</li><li>The dialog is sufficiently simple in layout to render quickly</li></ol><div>I've added a README on configuring the example accordingly.</div></div><div><br></div><div>Craig</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 10, 2024 at 12:38 PM Thiago Milczarek Sayão <<a href="mailto:thiago.sayao@gmail.com">thiago.sayao@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Craig,<div><br></div><div>Could you provide a reproducible example?</div><div><br></div><div>You are describing default wayland behaviour, which is to only show the surface on screen when it has a buffer.</div><div><br></div><div>One solution might be to show an initial background on the window.</div><div><br></div><div>I don't discard the possibility of a bug, so the reproducible example would help.</div><div><br></div><div>-- Thiago.</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em ter., 10 de set. de 2024 às 06:22, Craig Raw <<a href="mailto:craigraw@gmail.com" target="_blank">craigraw@gmail.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I have noticed a regression in JavaFX 22 (that was not present in JavaFX 18) on XWayland. <div><br></div><div>For JavaFX apps running on XWayland, Window.show() returns almost immediately, before the window has been rendered onscreen. This has the effect that if multiple windows are shown consecutively, the z order of these windows is determined by the complexity of rendering, not by the order in which show() was called on each. A practical example of this is showing the primary stage, followed by a dialog during application startup. The dialog, being simpler, will appear under the primary stage (despite it being modal, and owned by the primary stage) as it renders quicker. The application in this case appears unresponsive, requiring input on the hidden modal dialog.</div><div><br></div><div>There appears to be no way to programmatically determine whether a window has been rendered or not, so I'm not aware of any workarounds to this issue, apart from introducing a long fixed delay between calling show() methods and hoping it is long enough :(</div><div><br></div><div>Craig</div><div><br></div><div><br></div></div>
</blockquote></div>
</blockquote></div>