Stage Maximized/Iconified at the same time
Thiago Milczarek Sayão
thiago.sayao at gmail.com
Thu Apr 10 19:04:06 UTC 2025
Hi Martin,
I’ve started a broader effort to fix some open Linux bugs related to
XWayland and Xorg here:
https://github.com/openjdk/jfx-sandbox/compare/master...glass_gtk_bug_squashing
It's a work in progress—I'm planning to roll back some changes to narrow
the modifications and submit some of it separately.
I noticed on the docs on the Stage the following statement:
In case that more Stage modes are set simultaneously their order of
> importance is iconified, fullScreen, maximized (from strongest to weakest).
So I proceeded to try to honor it with the test:
gradlew -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests
StageAttributesTest.testAttributesPrecedence
It now passes, but not without changes on the glass Java side (on the same
branch).
-- Thiago
Em qui., 10 de abr. de 2025 às 14:01, Martin Fox <martinfox656 at gmail.com>
escreveu:
> The maximized state on Mac is murkier than it is on Windows and Linux but,
> yes, a window can be both iconified and maximized at the same time.
>
> The code you referenced looks correct. If you de-iconify a maximized
> window the WindowEvent should be MAXIMIZE, not RESTORE.
>
> What steps are you taking with your test app that’s creating buggy
> behavior? The only obvious problem I saw on Linux is that if you toggle the
> maximized state of an iconified window the iconified property can get
> cleared. This doesn’t happen on Mac.
>
> On Apr 10, 2025, at 5:17 AM, Thiago Milczarek Sayão <
> thiago.sayao at gmail.com> wrote:
>
> Hi,
>
> I don't have a Mac to test, but on Linux and Windows, a window can be both
> maximized and iconified at the same time. It retains the maximized state
> when restored from being iconified.
>
> I've mentioned this topic before, but it's now clear to me that there's a
> bug in JavaFX related to this behavior.
>
> from glass ui\Window.java:
>
> final static public class State {
> @Native public static final int NORMAL = 1;
> @Native public static final int MINIMIZED = 2;
> @Native public static final int MAXIMIZED = 3;
> }
>
>
> from quantum GlassWindowEventHandler.java
>
> case WindowEvent.RESTORE:
> stage.stageListener.changedIconified(false);
> stage.stageListener.changedMaximized(false);
> break;
>
>
> TestStage.java for testing this:
> https://gist.github.com/tsayao/5efca2e6f0f661595b31da37e2e7df26
>
> I probably can submit a fix.
>
> -- Thiago.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250410/5d1c7d22/attachment.htm>
More information about the openjfx-dev
mailing list