<AWT Dev> [14] Review Request: 8236953 [macos] JavaFX SwingNode is not rendered on macOS

Kevin Rushforth kevin.rushforth at oracle.com
Wed Jan 15 15:52:21 UTC 2020

Looks good to me. I tested it on my Mac with a few SwingNode apps, and 
they all render correctly with the fix applied.


-- Kevin

On 1/14/2020 8:10 PM, Sergey Bylokhov wrote:
> 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).

More information about the awt-dev mailing list