Hi Semyon,

Updated webrev to update the cache metrics when graphicsConfig changes and use it to recalculate
http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.05/

Regards
Prasanta
On 11/2/2017 12:09 AM, Semyon Sadetsky wrote:
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.sadhuk...@oracle.com <mailto:prasanta.sadhuk...@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.sadhuk...@oracle.com <mailto:prasanta.sadhuk...@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











Reply via email to