<AWT Dev> [9] Review request for 8072069: Toolkit.getScreenInsets() doesn't update if insets change
Anton Nashatyrev
anton.nashatyrev at oracle.com
Tue Feb 17 16:28:22 UTC 2015
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.
More information about the awt-dev
mailing list