<AWT Dev> <Awt Dev> [9] Review Request for 8036915: setLocationRelativeTo stopped working in Ubuntu 13.10 (Unity)

Semyon Sadetsky semyon.sadetsky at oracle.com
Thu Oct 29 10:19:11 UTC 2015

On 10/29/2015 12:20 AM, Sergey Bylokhov wrote:
> On 06.10.15 9:15, Semyon Sadetsky wrote:
>> Sorry. I meant it is not guaranteed to be sent by every WM.
>     But fetch the data of 100 times also doesn't guarantee that we 
> will get the necessary data. It will be better at least to try to 
> check the specified atom for this(it seems it is supported by all our 
> platfrom). For example on osx insets can be changed on the fly w/o 
> notification, because of this we fetch the insets on each reshapeEvent 
> and posts the necessary message up to hierarchy.
This is not guaranteed because X11 does not specify it.  Only Windows 
sends frame size but X11 leave it to the VM. In X11 it is guaranteed to 
apps to know the content window dimensions but not the outer frame.
Upon the ConfigureNotify the size of the window is set. Please be more 
specific, what do you propose to do if frame insets are not ready yet 
when ConfigureNotify comes? Should we set this size to java window 
anyway or you propose to wait until the insets are available?
>> On 10/6/2015 9:03 AM, Semyon Sadetsky wrote:
>>> In is extended event. In does not guaranteed to be sent by any WM.
>>> On 10/5/2015 6:12 PM, Sergey Bylokhov wrote:
>>>> Why we cannot treat such a XA_NET_FRAME_EXTENTS as a ConfigureNotify
>>>> in which only insets are changed, and the window bounds/insets should
>>>> be revalidated?
>>>> On 05.10.15 14:56, Semyon Sadetsky wrote:
>>>>> Hello,
>>>>> Please review fix for JDK9:
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8036915
>>>>> webrev: http://cr.openjdk.java.net/~ssadetsky/8036915/webrev.00/
>>>>> The test scenario attached to the jira contains potential errors
>>>>> because
>>>>> Componet.getLocation() won't return the location at any moment of 
>>>>> time.
>>>>> Anyway a window location issue exists in Unity. The root cause is 
>>>>> that
>>>>> the real insets sent with the XA_NET_FRAME_EXTENTS event can be
>>>>> overridden by the "guessed" insets which are zero on Unity. So the
>>>>> returned location is increased by real insets while the real window
>>>>> location is correct.
>>>>> Yet another issue I found in Unity is a window size issue which is 
>>>>> also
>>>>> caused by the frame insets detection. The Unity WM doesn't provide 
>>>>> the
>>>>> frame insets immediately and XA_NET_FRAME_EXTENTS event may come 
>>>>> after
>>>>> the ConfigureNotify event for the frame.
>>>>> The solution proposes an adaptation of the existing frame insets
>>>>> request
>>>>> algorithm to the Unity WM so that makes it more stable.
>>>>> --Semyon

More information about the awt-dev mailing list