<AWT Dev> [9] Review request for 8072069: Toolkit.getScreenInsets() doesn't update if insets change

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Tue Feb 17 16:36:07 UTC 2015


Hi, Anton.
Thanks for clarification. The fix looks good.

On 17.02.2015 19:28, Anton Nashatyrev wrote:
> Hi Sergey,
>
>     thanks for comments and for help!
>
>     It turned out that the 
> NSApplicationDidChangeScreenParametersNotification is not fired on 
> Dock size change so the only remaining way is query insets natively 
> each time.
>
> Here is the new version (the initial fix + comments): 
> http://cr.openjdk.java.net/~anashaty/8072069/9/webrev.01/ 
> <http://cr.openjdk.java.net/%7Eanashaty/8072069/9/webrev.01/>
>
> Thanks!
> Anton.
>
> On 13.02.2015 20:09, Sergey Bylokhov wrote:
>> Hi, Anton.
>> This cache was added intentionally, but the reason was not a 
>> performance but a way to skip locking against Appkit thread. Because 
>> in some cases we got a deadlocks. Your suggestion to use 
>> NSApplicationDidChangeScreenParametersNotificationin is correct way 
>> to fix this. Do you try to implement it?
>>
>> ----- anton.nashatyrev at oracle.com wrote:
>>
>>> Hello,
>>>
>>>       could you please review the following fix:
>>>
>>> fix: http://cr.openjdk.java.net/~anashaty/8072069/9/webrev.00/
>>> <http://cr.openjdk.java.net/%7Eanashaty/8072069/9/webrev.00/>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8072069
>>>
>>>       Problem: Toolkit.getScreenInsets() returns old value after Dock
>>> moved/resized on Mac
>>>
>>>       Fix: remove the value caching and always ask native for insets.
>>> This shouldn't cause any performance drawbacks since the
>>> getScreenInsets() is rarely called (mostly on window init and on popup
>>>
>>> positioning).
>>>
>>> Thanks!
>>> Anton.
>


-- 
Best regards, Sergey.



More information about the awt-dev mailing list