<AWT Dev> [9] Review request for 8167652: Making a frame/dialog resizeble/unresizeble shifts its position on Unity.
Alexander Zvegintsev
alexander.zvegintsev at oracle.com
Mon Dec 19 17:21:24 UTC 2016
Looks good to me.
Thanks,
Alexander.
On 26/10/2016 16:06, Semyon Sadetsky wrote:
> Please review the updated fix:
> http://cr.openjdk.java.net/~ssadetsky/8167652/webrev.01/
>
> - unnecessary AWT locks are removed
>
> - client code calls are taken away from AWT lock blocks
>
> - some design improvements are made
>
> --Semyon
>
>
> On 10/19/2016 8:38 PM, Sergey Bylokhov wrote:
>> Hi, Semyon.
>> A few notes.
>> - The awtLock is a lowlevel lock which should be used only when we
>> access the xlib and some other native resource like opengl. We should
>> not call the users code on it. In the fix the code in
>> XDecoratedPeer.updateMinimumSize() will call the users code.
>> - Some of the changed methods are called already under this lock,
>> for example XDecoratedPeer.handlePropertyNotify(), and probably others.
>>
>> On 18.10.16 16:46, Semyon Sadetsky wrote:
>>> Hello,
>>>
>>> Please review fix for JDK9:
>>>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8167652
>>>
>>> webrev: http://cr.openjdk.java.net/~ssadetsky/8167652/webrev.00/
>>>
>>> In Linux, when a frame or dilalog is made resizable or non-resizable
>>> the
>>> window decoration need to be updated. For that purpose window is
>>> unmapped and mapped again and WM changes the window decoration parent.
>>> The re-parenting may cause WM to send intermediate "artifact events"
>>> which change the window location on the screen, this WM behavior is
>>> undocumented. To avoid window move the window shift is compensated in
>>> XWM.setShellResizable()/XWM.setShellNotResizable(), but Unity WM shifts
>>> the window position in different way. In the proposed solution the
>>> window shift compensation is adjusted for Unity WM.
>>>
>>> Also in the fix all writes to the fields that store the current
>>> state of
>>> window dimensions are protected with the AWT lock. This is necessary to
>>> avoid unexpected window move or resize when the window dimensions are
>>> changed from the user thread concurrently while the AWT toolkit thread
>>> handles WM sent notifications affecting the current window state, size,
>>> position, insets, etc.
>>>
>>> --Semyon
>>>
>>
>>
>
More information about the awt-dev
mailing list