Several GTK issues on latest Ubuntu release

Kevin Rushforth kevin.rushforth at oracle.com
Wed Oct 25 15:20:41 UTC 2023


Question for the original poster of this thread: Are you running the 
Wayland server or the X.org server?

-- Kevin


On 10/24/2023 5:53 PM, Thiago Milczarek Sayão wrote:
> 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 
> <crschnick at xpipe.io> 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
>>     <thiago.sayao at gmail.com> 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
>>         <crschnick at xpipe.io> 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
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20231025/7f3ebb71/attachment-0001.htm>


More information about the openjfx-dev mailing list