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

Alexander Zvegintsev alexander.zvegintsev at oracle.com
Fri Feb 13 15:07:52 UTC 2015


Thanks for the confirmation, the fix looks good to me.

Thanks,

Alexander.

On 02/13/2015 06:01 PM, Anton Nashatyrev wrote:
> Hi, Alexander
>
>     I tried the ToplevelFactory.jar demo with security warning: on a 
> single window resize the insets are queried ~10-20 times. I've tested 
> the native method call time with a microbenchmark: it shows < 
> 0.1ms/call. Thus we got ~1-2ms overhead for a single window resize. 
> Visually there is no performance degradation.
>
> Thanks!
> Anton.
>
> On 13.02.2015 16:03, Alexander Zvegintsev wrote:
>> Hello Anton,
>>
>> getScreenInsets() is called from repositionSecurityWarning() also 
>> (which is called on every LWWindowPeer.notifyReshape()).
>> It probably may affect performance in case when security warning is 
>> shown while resizing a window.
>> Could you please  check this case?
>> If this leads to impaired performance we may consider to use 
>> NSApplicationDidChangeScreenParametersNotification [0]
>> to update cached values.
>>
>> [0] 
>> https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSApplication_Class/#//apple_ref/c/data/NSApplicationDidChangeScreenParametersNotification
>>
>> Thanks,
>>
>> Alexander.
>>
>> On 02/13/2015 03:06 PM, Anton Nashatyrev 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