On Wed, 19 May 2021 10:23:01 GMT, Maxim Kartashev <github.com+28651297+mkartas...@openjdk.org> 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