I suspect something changed on the window manager (mutter in the case of default Ubuntu/gnome).
One problem is that focusing the window is restoring it's state - so if you focus a maximized window the window manager restores it - looks like a bug. In the case of JavaFX the native side is calling realize on the window which causes the underlying window to be created (X Window - the X11 window) and I suspect its the source of the problem. Might still be a bug on the window manager, but the PR mentioned let's GTK realize the window first, so it doesn't change the "natural" order expected by GTK. I confirm that it fixes the window sizing problem reported on the issue. Not sure about other problems, but I suspect they might be gone after the fix (except for the state after focus). Thiago Em seg., 23 de out. de 2023 11:48, Christopher Schnick <[email protected]> escreveu: > That is good to know that this issue is already being worked on. From the > description of https://bugs.openjdk.org/browse/JDK-8316423, this issue is > only tracked as affecting secondary stages? At least in our case it affects > the primary stage as well, i.e. the one that is supplied via > Application.start. Also, in this case it's not really about the scene > dimensions, the stage doesn't even apply its own dimensions that were > explicitly set before. > On 10/23/2023 4:39 PM, Thiago Milczarek Sayão wrote: > > Forgot to mention: except for the system tray, I'm not looking into that. > > Em seg., 23 de out. de 2023 11:36, Thiago Milczarek Sayão < > [email protected]> escreveu: > >> Hi Cristopher, >> >> https://github.com/openjdk/jfx/pull/1249 >> >> We noticed it and I'm working on a fix. >> >> There's one issue that is probably a mutter bug: >> >> https://gitlab.gnome.org/GNOME/mutter/-/issues/3092 >> >> -- Thiago >> >> Em seg., 23 de out. de 2023 10:05, Christopher Schnick < >> [email protected]> escreveu: >> >>> Hello, >>> >>> a user of our application xpipe <https://github.com/xpipe-io/xpipe> >>> reported several issues after upgrading their Ubuntu version and I >>> investigated them myself. I want to note here that these issues are >>> exclusive to new Ubuntu versions. I did not observe any of them on slightly >>> older Ubuntu versions or other Gnome-based desktop environments. I don't >>> know exactly which versions are affected, but 22.04 works fine and Ubuntu >>> 23.10 does not. >>> >>> I'm sorry that I'm not able to create fully reproducible examples or dig >>> deeper into the causes here, but I'm very constrained on time right now. >>> For reproduction, I just installed a new default Ubuntu 23.10 VM and >>> launched the JavaFX 21 application straight out of the box. >>> >>> The first issue is that windows do not retain their information when >>> being hidden and then shown again. I.e. after being shown for the second >>> time, they will have tiny dimensions and an GTK error is printed to stderr >>> about height < 0. For now I temporarily resolve this by doing the >>> following, which somehow fixes the issue: >>> >>> stage.show(); >>> >>> // Due to some weird GTK bug, we have to set these sizes every >>> time we show a window again even though they have been previously set >>> stage.setX(stage.getX()); >>> stage.setY(stage.getY()); >>> stage.setWidth(stage.getWidth()); >>> stage.setHeight(stage.getHeight()); >>> >>> Furthermore, while this is technically not purely JavaFX related, there >>> is also a total freeze of the platform thread when it calls >>> javax.swing.UIManager.setLookAndFeel >>> as it gets stuck in some GTK implementation method. This is called by >>> the fxtrayicon library, which calls this method here >>> <https://github.com/dustinkredmond/FXTrayIcon/blob/81c99a7357d8f48d9547c0bdb54b848041ce67c6/src/main/java/com/dustinredmond/fxtrayicon/FXTrayIcon.java#L923>. >>> Since there is no native JavaFX tray integration, calling these awt/swing >>> related methods is quite important for applications trying to use the >>> system tray. This was a very unfortunate issue for us as it caused >>> applications to not start up at all on affected systems. >>> I wasn't able to compare the behavior to Ubuntu 22.04 as >>> SystemTray.isSupported() returns false on Ubuntu 22.04 but returns true on >>> Ubuntu 23.10. Should this even return true on Ubuntu now or is this a bug? >>> >>> Again, these issues only occur on the very latest Ubuntu release. I have >>> tested on a lot of other different distros, old and new, and they all >>> worked flawlessly. >>> >>> Best regards, Christopher >>> >>
