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