<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