<AWT Dev> <Swing Dev> [10] Review request for 8182043: Access to Windows Large Icons

Semyon Sadetsky semyon.sadetsky at oracle.com
Fri Oct 6 20:50:42 UTC 2017


On 10/06/2017 01:16 PM, Sergey Bylokhov wrote:

> On 10/6/17 13:01, Semyon Sadetsky wrote:
>> On 10/06/2017 12:38 PM, Sergey Bylokhov wrote:
>>
>>> On 10/6/17 09:53, Alexey Ivanov wrote:
>>>>> It is limitation of our implementation:
>>>>> https://bugs.openjdk.java.net/browse/JDK-8151385
>>>>> http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010777.html
>>>>
>>>> I see. And it can be changed, if deemed necessary, can't it?
>>>
>>> Yes we can.
>> Since you were the person who approved this fix can you explain why 
>> the limitation was introduced?
>> We can decide whether this limitation should be reverted in a 
>> separate bug.
>
> The maximum icon which we use is 32pixel's icon, and 128 is a size of 
> this icon on 4k monitor.
This is not true because in addition to LARGE which you probably mean as 
32-128 (ignoring the fact that this sizes may be changed in the Windows 
registry), Windows supports EXTRA_LARGE and JAMBO since Vista. But these 
constants are related to the predefined system icon sizes while the 
Extract() may scale icon to any size. So, I still do not see what was 
the reason to introduce this limitation.
>
>>>
>>>>> As far as I understand the bug above, it is possible that OS 
>>>>> returns some other size.
>>>>
>>>> No, it is not.
>>>> In that bug icons are extracted from Image List which is created a 
>>>> part of Toolbar:
>>>>
>>>> 1036     HWND hWndToolbar = ::CreateWindowEx(0, TOOLBARCLASSNAME, 
>>>> NULL,
>>>>
>>>> Then an icon is extracted from that image list.
>>>> Obviously, Toolbar can create and creates, as the bug report shows, 
>>>> its icon set of different size depending on the current DPI 
>>>> setting, or rather the DPI settings of the main display.
>>>>
>>>> As for JOptionPane, the icons are loaded using ::LoadIcon which 
>>>> loads icon of the default size only. Depending on the current DPI 
>>>> setting, it may return icon of larger size.
>>>>
>>>>
>>>> Yet in this fix, the file icon is requested with explicit size. You 
>>>> will get the size you requested.
>>>
>>> Probably we have some other bug in the fix, but unfortunately I 
>>> cannot confirm behavior you describe. For example if I request the 
>>> icon for some pdf,java.txt files of size 100m then:
>>>  - On HiDPI screen I get the native icon of size 64.
>>>  - On LowDPI screen I get the native icon of size 32.
>>> In both cases the user will get MRI, which will scale the native icon.
>>
>>
>
>



More information about the awt-dev mailing list