Thanks for the clarification changes are fine.

Regards,
Jay

> On 12-Apr-2019, at 5:22 PM, Prasanta Sadhukhan 
> <prasanta.sadhuk...@oracle.com> wrote:
> 
> HI Jay,
> 
> On 12-Apr-19 3:30 PM, Prasanta Sadhukhan wrote:
>> HI Jay,
>> Thanks for your review.
>> On 12-Apr-19 2:50 PM, Jayathirth Rao wrote:
>>> Hi Prasanta,
>>> 
>>> I was going through the trail of changes related to this fix.
>>> 
>>> In JDK-8178025 changes are made to update the BasicTooTipUI renderer when 
>>> there is “graphicsConfiguration” property is changed and also we have 
>>> updated GlyphPainter1 to get proper FontMetrics if there is mismatch 
>>> between Container FM and default FM. Apart from this we have modified code 
>>> to return floating point width GlyphPainter1.getSpan().
>>> 
>>> After this under JDK-8191428 floating point width calculation of 
>>> GlyphPainter1.getSpan() is reverted as it has caused a regression. Even 
>>> after JDK-8191428 change, you have mentioned that JDK-8178025 regression 
>>> test GetSpanHiDpiBug.java is not failing. Is it because font metrics update 
>>> done in sync() method is enough to get proper span?
>>> 
>> Yes, and also BasicHTML.updateRenderer() was called due to GC change in 
>> BasicLabelUI which cause html to recreate the text via createHTMLView() 
>> using proper span .
>>> Also in JDK-8201552, we have modified the way in which we update renderer 
>>> in propertyChange() using SwingU2.isScaleChanged() instead of firing event 
>>> in all cases where “graphicsConfiguration” is the property change. Will 
>>> this in anyway modify the previously expected behaviour?
>> I believe JDK-8201552 catches "graphicsConfiguration" property event in 
>> SwingU2.isScaleChanged() and updates if there is a change in "scale", which 
>> anyway is what "graphicsConfiguration" property was introduced for,
>> so I think it will not modify behavour prior to JDK-8201552 and after 
>> JDK-8178025 fix.
>>> 
>>> Overall it looks like we are getting different scale values from 
>>> Component.getFont.getTransform() compared to getting scale values directly 
>>> from GC. May be we are not updating font properties when there is GC change.
>>> 
> Not sure on this whether we should update the Component font's transform. As 
> this issue is primarily for html text in tooltip (ie it does not occur if 
> tooltip uses normal text) which means BasicHTML.updateRenderer()
> has already updated the html text ('s span) due to GC change, so only thing 
> we can do is to update the rectangle size to contain the updated text.
>>> Also in the present change do we need to scale insets of the rectangle 
>>> along with width and height?
>> I am updating the whole "paintTextR" rectangle needed to contain the tooltip 
>> text which already has insets calculated in it.
>> 
>> Regards
>> Prasanta
>>> 
>>> Thanks,
>>> Jay
>>> 
>>>> On 29-Mar-2019, at 3:07 PM, Prasanta Sadhukhan 
>>>> <prasanta.sadhuk...@oracle.com <mailto:prasanta.sadhuk...@oracle.com>> 
>>>> wrote:
>>>> 
>>>> Hi All,
>>>> 
>>>> Please review a fix for an issue where it is seen that HTML tooltips 
>>>> aren't big enough to contain their contents on Windows HiDPI displays, 
>>>> there by the last word of the tooltip text are missing.
>>>> 
>>>> It is an aftereffect of JDK-8178025 
>>>> <https://bugs.openjdk.java.net/browse/JDK-8178025> where we update glyph 
>>>> fontMetrics if current metrics is different from Container's fontmetrics. 
>>>> Even if the affinetransform or uiScale is modified, metrics is updated as 
>>>> FontMetrics would have changed because of the transform.
>>>> This caused the tooltip rectangle to be not able to contain the text which 
>>>> is drawn with modified metrics.
>>>> Proposed fix is to check if graphics transform has been modified because 
>>>> of hidpi scale, in which case, scale the tooltip rectangle accordingly.
>>>> 
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8213535 
>>>> <https://bugs.openjdk.java.net/browse/JDK-8213535>
>>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8213535/webrev.0/ 
>>>> <http://cr.openjdk.java.net/%7Epsadhukhan/8213535/webrev.0/>
>>>> 
>>>> I was not able to fashion an automated test for this, so created a manual 
>>>> test.
>>>> 
>>>> Regards
>>>> Prasanta
>>> 
>> 
> 

Reply via email to