On Mon, 2 Aug 2021 20:04:43 GMT, Alexey Ushakov <a...@openjdk.org> wrote:
>> src/java.desktop/macosx/classes/sun/lwawt/LWWindowPeer.java line 199: >> >>> 197: >>> 198: platformWindow.initialize(target, this, ownerDelegate); >>> 199: platformWindow.setOpaque(!isTranslucent()); >> >> !isTranslucent() uses the opaque flag which will be initialised in the code >> below(see setOpaque(getTarget().isOpaque());) > > Yes, and we need this call here to initialise content view with correct > default value > CPlatformWindow.java:931 contentView.setWindowLayerOpaque(isOpaque); I need to look at it closely, I do not understand why we made the native layer opaque=NO by default while the java code uses opaque=true by default. And then we reset the native code from NO to yes by the code above. Why we cannot make both native/java use true/YES and when necessary it will be reset to false/NO by the existing code(via LWWindowPeer.setOpaque() and LWWindowPeer.updateOpaque?) BTW Probably implementation of LWWindowPeer.setTextured() should call the updateOpaque() as well. ------------- PR: https://git.openjdk.java.net/jdk/pull/4946