<Swing Dev> <AWT 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 swing-dev
mailing list