Several GTK issues on latest Ubuntu release

Christopher Schnick crschnick at xpipe.io
Wed Oct 25 18:29:40 UTC 2023


I tested on Wayland and X.org, and they both show exactly the same behavior.

(Apologies if this mail somehow breaks the mailing list chain, the 
digest mode makes it hard to reply to some mails)

On 10/25/2023 5:21 PM, openjfx-dev-request at openjdk.org wrote:
> 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/94d1df80/attachment.htm>


More information about the openjfx-dev mailing list