<AWT Dev> RFR: 8267307: Introduce new client property for XAWT: xawt.mwm_decor_title [v2]
azvegint at openjdk.java.net
Fri Jun 4 12:25:58 UTC 2021
On Fri, 4 Jun 2021 08:44:22 GMT, Maxim Kartashev <github.com+28651297+mkartashev at 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.
> 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.
Marked as reviewed by azvegint (Reviewer).
More information about the awt-dev