Did some more research.
For some reason enterModal() on ui/Window.java is never called. The native part
on gtk/GlassWindow.cpp is also never called. So, something else is doing the
"MODAL" work inside the Java code and not on the native part.
I think the bug is on WindowStage.java -> setVisible. Commenting out this line
on setVisible seems to fix the problem:
// After setting visible to true on the native window, we block
// other windows.
if (visible) {
if (modality == Modality.WINDOW_MODAL) {
if (owner != null && owner instanceof WindowStage) {
//HERE ---> ((WindowStage) owner).setEnabled(false);
}
} else if (modality == Modality.APPLICATION_MODAL) {
windowsSetEnabled(false);
}
if (isAppletStage && null != appletWindow) {
System.out.println("assertStageOrder");
appletWindow.assertStageOrder();
}
}
What I think it's happening:
setEnable(false) is being called on "Last Dialog" (reference to the example
code on the bug report) owner which is "Second Window", so "Fist Window" is
assuming as the top window again.
It's somehow depending on event order. On my work machine the result varies,
but mostly it shows the bug. On my home machine (which is newer and much more
powerful) it *always* shows the bug.
De: openjfx-dev <[email protected]> em nome de Thiago
Milczarek Sayao <[email protected]>
Enviado: domingo, 7 de abril de 2019 17:49
Para: [email protected]
Assunto: RE: Request to bump JDK-8220272 priority
Did more research on this bug. It seems to happen when a stage has more than on
child. The second child does not fire events on GlassWindowEventHandler.
Still do not know why..
Reporting here since I can't update the bug (no access).
________________________________
De: openjfx-dev <[email protected]> em nome de Thiago
Milczarek Sayao <[email protected]>
Enviado: sexta-feira, 5 de abril de 2019 09:54
Para: [email protected]
Assunto: Request to bump JDK-8220272 priority
Hi,
Is it possible to bump up the JDK-8220272 priority?
https://bugs.openjdk.java.net/browse/JDK-8220272
We are building a Point of Sale application in OpenJfx for Brazilian Pharmacy
Retail. This bug often change the order or windows, so top modal windows shows
behind it's parent and users thinks the system hanged (because events on the
window are blocked since there is a modal child window that is behind).
I can work to help fix it (I lack knowledge of openjfx internals, but at least
I can try).
Thanks.