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 <martinfox...@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.sa...@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. > > >