On Wed, 19 May 2021 10:23:01 GMT, Maxim Kartashev
<[email protected]> wrote:
> This commit introduces a new client property xawt.mwm_decor_title
> implementing JDK-8267307. The property can be set prior to showing a window
> or after the window has been displayed, in which case the window will have to
> be hidden/shown (re-mapped) for the property to take effect.
>
> The general idea is to provide control over the "decorations" part of the X11
> window property called _MOTIF_WM_HINTS. Those "decoration" bits are set to 1
> (XWindowAttributesData.AWT_DECOR_ALL) to show all the decorations or 0
> (XWindowAttributesData.AWT_DECOR_NONE) to ask the window manager (WM) not to
> decorate with anything, even borders or resize handles. With
> xawt.mwm_decor_title property set to "true", this commit adds the ability to
> set the bits to 2 (XWindowAttributesData.AWT_DECOR_BORDER), which some WMs
> take as "decorate with only a border", thus effectively removing the window's
> title bar, but still leaving the resize capability.
>
> This feature was tested and works correctly on "vanilla" Ubuntu 20.04 with
> the "GNOME Shell" window manager. It was also tested with Xfwm4 and KDE,
> where it did not have any effect; these two WMs have limited respected for
> the "decorations" bits of the _MOTIF_WM_HINTS window property.
src/java.desktop/unix/classes/sun/awt/X11/XFramePeer.java line 84:
> 82:
> 83: private void registerWindowDecorationChangeListener() {
> 84: if (target instanceof javax.swing.RootPaneContainer) {
Probably this should be done via runtime check? Overwise the swing classes will
be always loaded even if swing is not used. see the usage of
SunToolkit.isInstanceOf in java.awt.WIndow.java:3965
-------------
PR: https://git.openjdk.java.net/jdk/pull/4113