On Fri, 4 Jun 2021 08:44:22 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.
>
> Maxim Kartashev has updated the pull request incrementally with one
> additional commit since the last revision:
>
> Changed the check for the XFramePeer target being
> javax.swing.RootPaneContainer in
> order to avoid unnecessary class loading if it isn't.
>
> Also updated the test such that robot.createScreenCapture() is not
> executed on EDT.
src/java.desktop/unix/classes/sun/awt/X11/XDecoratedPeer.java line 1327:
> 1325: Optional<Boolean> res = Optional.empty();
> 1326:
> 1327: if (target instanceof javax.swing.RootPaneContainer) {
Looks like this instanceof will load the Swing as well.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4113