@Override
	public void propertyChange( PropertyChangeEvent e ) {
		super.propertyChange( e );

		switch( e.getPropertyName() ) {
			case "windowDecorationStyle":
				uninstallClientDecorations();
				if( rootPane.getWindowDecorationStyle() != JRootPane.NONE )
					installClientDecorations();
				else
					installBorder();
				break;

			case FlatClientProperties.USE_WINDOW_DECORATIONS:
				updateNativeWindowBorder( rootPane );
				break;

			case FlatClientProperties.MENU_BAR_EMBEDDED:
				if( titlePane != null ) {
					titlePane.menuBarChanged();
					rootPane.revalidate();
					rootPane.repaint();
				}
				break;

			case FlatClientProperties.TITLE_BAR_SHOW_ICON:
				if( titlePane != null )
					titlePane.updateIcon();
				break;

			case FlatClientProperties.TITLE_BAR_SHOW_TITLE:
			case FlatClientProperties.TITLE_BAR_SHOW_ICONIFFY:
			case FlatClientProperties.TITLE_BAR_SHOW_MAXIMIZE:
			case FlatClientProperties.TITLE_BAR_SHOW_CLOSE:
				if( titlePane != null )
					titlePane.updateVisibility();
				break;

			case FlatClientProperties.TITLE_BAR_BACKGROUND:
			case FlatClientProperties.TITLE_BAR_FOREGROUND:
				if( titlePane != null )
					titlePane.titleBarColorsChanged();
				break;

			case FlatClientProperties.TITLE_BAR_HEIGHT:
				if( titlePane != null )
					titlePane.revalidate();
				break;

			case FlatClientProperties.FULL_WINDOW_CONTENT:
				if( titlePane != null ) {
					rootPane.getLayeredPane().setLayer( titlePane, getLayerForTitlePane() );
					if( titlePane.windowTopBorderLayer != null ) {
						JLayeredPane layeredPane = rootPane.getLayeredPane();
						if( titlePane.isWindowTopBorderNeeded() && isFullWindowContent( rootPane ) )
							layeredPane.add( titlePane.windowTopBorderLayer, WINDOW_TOP_BORDER_LAYER );
						else
							layeredPane.remove( titlePane.windowTopBorderLayer );
					}
					titlePane.updateIcon();
					titlePane.updateVisibility();
					titlePane.updateFullWindowContentButtonsBoundsProperty();
				}
				FullWindowContentSupport.revalidatePlaceholders( rootPane );
				rootPane.revalidate();
				break;

			case FlatClientProperties.FULL_WINDOW_CONTENT_BUTTONS_BOUNDS:
				FullWindowContentSupport.revalidatePlaceholders( rootPane );
				break;

			case FlatClientProperties.GLASS_PANE_FULL_HEIGHT:
				rootPane.revalidate();
				break;

			case FlatClientProperties.WINDOW_STYLE:
				if( rootPane.isDisplayable() )
					throw new IllegalComponentStateException( "The client property 'Window.style' must be set before the window becomes displayable." );
				break;

			case "ancestor":
				if( e.getNewValue() instanceof Window ) {
					if( titlePane != null && !Objects.equals( titlePane.windowStyle, FlatTitlePane.getWindowStyle( rootPane ) ) )
						setTitlePane( createTitlePane() );

					macClearBackgroundForTranslucentWindow( rootPane );
				}

				macUninstallWindowBackgroundListener( rootPane );
				macInstallWindowBackgroundListener( rootPane );

				// FlatNativeMacLibrary.setWindowButtonsSpacing() and
				// FullWindowContentSupport.macUpdateFullWindowContentButtonsBoundsProperty()
				// require a native window, but setting the client properties
				// "apple.awt.fullWindowContent" or FlatClientProperties.MACOS_WINDOW_BUTTONS_SPACING
				// is usually done before the native window is created
				// --> try again when native window is created
				if( e.getNewValue() instanceof Window )
					macInstallFullWindowContentSupport();
				break;

			case FlatClientProperties.MACOS_WINDOW_BUTTONS_SPACING:
				macInstallFullWindowContentSupport();
				break;

			case "apple.awt.fullWindowContent":
				if( SystemInfo.isMacFullWindowContentSupported )
					FullWindowContentSupport.macUpdateFullWindowContentButtonsBoundsProperty( rootPane );
				break;
		}
	}
When setting window background to translucent color (alpha < 255),
Swing paints that window translucent on Windows and Linux, but not on macOS.
The reason for this is that FlatLaf sets the background color of the root pane,
and Swing behaves a bit differently on macOS than on other platforms in that case.
Other L&Fs do not set root pane background, which is {@code null} by default.
<p>
To fix this problem, set the root pane background to {@code null}
if windows uses a translucent background.
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRootPaneUI.java