RFR: 8305825: getBounds API returns wrong value resulting in multiple Regression Test Failures on Ubuntu 23.04

Alexander Zvegintsev azvegint at openjdk.org
Wed Dec 6 18:54:35 UTC 2023


On Wed, 6 Dec 2023 18:33:56 GMT, Alisen Chung <achung at openjdk.org> wrote:

>> The root of this issue is the incorrect calculation of window decoration insets.
>> 
>> Previously we got non-zero window insets in the first PropertyNotify with [_NET_FRAME_EXTENTS](https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm45771211302000) atom, save them and never change them again.
>> 
>> This changed starting with Ubuntu 23.04:
>> Now we can get several such notifications with zero window insets, and only then the correct value.
>> 
>> Our code is not ready for this. It affects all our JDK. As a result, many tests fail on Ubuntu 23.04 and 23.10.
>> 
>> The solution is to change these insets on the fly, for now only for Mutter window manager. 
>> The guessInsets for it have also been updated.
>> 
>> 
>> This also means that some tests need some stabilization as they are not ready for such late arrival of window insets.
>> 
>> Testing looks good.
>
> src/java.desktop/unix/classes/sun/awt/X11/XWM.java line 1373:
> 
>> 1371:                   break;
>> 1372:               case MUTTER_WM:
>> 1373:                   res = new Insets(37, 0, 0, 0);
> 
> How did you come up with the numbers for these insets?

They are obtained from the system, and are a default value for the Gnome shell (which uses Mutter WM).
You can get them with `window.getInsets()`.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16960#discussion_r1417847020


More information about the client-libs-dev mailing list