<AWT Dev> [14] Review Request: 8236953 [macos] JavaFX SwingNode is not rendered on macOS
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Wed Jan 15 04:10:44 UTC 2020
Hello.
Please review the fix for JDK 14.
Bug: https://bugs.openjdk.java.net/browse/JDK-8236953
Fix: http://cr.openjdk.java.net/~serb/8236953/webrev.00
The Swing components depends on the COMPONENT_RESIZED and
COMPONENT_MOVED posted by the AWT. These events are posted
in three situations:
1. If the Component is invisible then events are always posted
by the Component class.
2. If the Component is visible and the size is changed by the
user via setBounds() method then events are posted by the
component only if the component is not Window.
3. If the Component is visible and the size is changed by the
OS then the peer will post these events.
Note that in point 2. we skip any top-level windows because we
know that sometime later we will get a native callback and will
post events at point 3.
In JDK-8144125 I have fixed a bug when we always posted these
evens at point 2., and as a result, we got duplicated events after
point 3. But the fix caused current regression, the JLightweightFrame
which is used by the SwingNode is a kind of top-level window but w/o
the native part, so it will never get a native callback and should post
events ourself, we already do this on windows, and probably should do
this on Linux(it is currently works because on Linux AWT posts too
many events).
--
Best regards, Sergey.
More information about the awt-dev
mailing list