<Swing Dev> [10] RFR JDK-8178025:HiDPI with non-integer scale factor - SPANs in HTML are rendered overlapping each other
Semyon Sadetsky
semyon.sadetsky at oracle.com
Wed Nov 1 18:39:58 UTC 2017
Hi Prasanta,
The change in GlyphPainter1 looks suspicious to me. It uses component's
metrics to get the span but leaves the cashed metrics equals to default.
Can you explain this?
--Semyon
On 10/31/2017 10:35 PM, Prasanta Sadhukhan wrote:
> Hi Semyon,
>
> Yes, BasicMenuItemUI also suffers from same issue. Here's the modified
> webrev fixing it also
> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.04/
>
> Regards
> Prasanta
> On 10/31/2017 8:28 PM, Semyon Sadetsky wrote:
>> Hi Prasanta,
>>
>> Can you also check at BasicMenuItemUI. It seems it may have the
>> similar issue.
>>
>> --Semyon
>>
>>
>> On 10/30/2017 11:12 PM, Prasanta Sadhukhan wrote:
>>> Ok. Modified webrev to make sure data is recalculated by listening
>>> to "graphicsConfig" change
>>>
>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.03/
>>>
>>> Regards
>>> Prasanta
>>> On 10/27/2017 11:57 AM, Sergey Bylokhov wrote:
>>>> I am not sure that it is called when the window is moved from one
>>>> screen(HiDPI) to another screen(lowDpi). In this case the
>>>> updateGraphicsData() will be called and we need to recalculate our
>>>> data.
>>>>
>>>> On 23/10/2017 23:06, Prasanta Sadhukhan wrote:
>>>>> Whatever testing I have done, propertyChange gets called during.
>>>>> If you have any test/steps which changes GC at "later" stage,
>>>>> please provide and I will see if it does not call propertyChange.
>>>>>
>>>>>
>>>>> On 10/24/2017 11:13 AM, Alan Snyder wrote:
>>>>>> You’re guessing? Really?
>>>>>>
>>>>>>> On Oct 23, 2017, at 10:19 PM, Prasanta Sadhukhan
>>>>>>> <prasanta.sadhukhan at oracle.com
>>>>>>> <mailto:prasanta.sadhukhan at oracle.com>> wrote:
>>>>>>>
>>>>>>> I would guess so as "ancestor" listener is to support
>>>>>>> notification when changes occur to a JComponent or one of its
>>>>>>> ancestors.
>>>>>>>
>>>>>>> Regards
>>>>>>> Prasanta
>>>>>>> On 10/23/2017 7:45 PM, Alan Snyder wrote:
>>>>>>>> Does it handle the case where the graphics configuration is
>>>>>>>> later changed?
>>>>>>>>
>>>>>>>> Alan
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Oct 22, 2017, at 11:23 PM, Prasanta Sadhukhan
>>>>>>>>> <prasanta.sadhukhan at oracle.com
>>>>>>>>> <mailto:prasanta.sadhukhan at oracle.com>> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 10/19/2017 3:42 PM, Prasanta Sadhukhan wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 10/19/2017 3:49 AM, Sergey Bylokhov wrote:
>>>>>>>>>>> On 17/10/2017 03:48, Prasanta Sadhukhan wrote:
>>>>>>>>>>>> It seems for JLabel, Component.updateGraphicsData() with
>>>>>>>>>>>> proper GraphicsConfiguraiton is never called which it does
>>>>>>>>>>>> for JTextComponent or JDialog. Do you know why? Because of
>>>>>>>>>>>> this, correct FRC is not created.
>>>>>>>>>>>> I am not sure what else I can do to create correct FRC.
>>>>>>>>>>>
>>>>>>>>>>> But at some point we will get a correct
>>>>>>>>>>> GraphicsConfiguraiton for a component, right? It should be
>>>>>>>>>>> called for the window and child when we show the window on
>>>>>>>>>>> the screen, when we move the window to another screen, etc.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> Yes, it seems to be called when JLabel is added to JFrame but
>>>>>>>>>> not before.
>>>>>>>>>> Span is calculated in GlyphPainter1.getSpan() which is called
>>>>>>>>>> when JLabel is created and
>>>>>>>>>> as it seems, not when JLabel is added to JFrame (which is
>>>>>>>>>> when we get the correct graphics configuration and therefore
>>>>>>>>>> correct transform).
>>>>>>>>>>
>>>>>>>>>> So, we need to make sure spans are recalculated when the
>>>>>>>>>> JLabel is added to frame, which is what modified webrev does
>>>>>>>>>> by calling JLabel.updateUI()
>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.01/
>>>>>>>>>> <http://cr.openjdk.java.net/%7Epsadhukhan/8178025/webrev.01/>
>>>>>>>>>>
>>>>>>>>> Modified webrev to only update html renderer when JLabel is
>>>>>>>>> added to frame by listening to property "ancestor" which
>>>>>>>>> implies component is added/made visible, at which point
>>>>>>>>> correct graphics configuration is set.
>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.02/
>>>>>>>>> <http://cr.openjdk.java.net/%7Epsadhukhan/8178025/webrev.02/>
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Prasanta
>>>>>>>>>> Regards
>>>>>>>>>> Prasana
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>
More information about the swing-dev
mailing list