<Swing Dev> [10] RFR JDK-8178025:HiDPI with non-integer scale factor - SPANs in HTML are rendered overlapping each other

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Wed Nov 1 05:35:30 UTC 2017


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