View is updated by calling BasicHTML.updateRenderer when
"graphicsConfiguration" property is fired when tooltip is shown via
tip.show() in ToolTipManager. Now, we should be using the updated
preferredSize calculated by View.getPreferredSpan but BasicToolTip#paint
still uses the old size. Proposed fix is to use the updated preferredSize.
http://cr.openjdk.java.net/~psadhukhan/8213535/webrev.2/
Regards
Prasanta
On 28-Mar-20 8:49 AM, Sergey Bylokhov wrote:
On 3/27/20 3:27 am, Prasanta Sadhukhan wrote:
On 07-Dec-19 10:28 AM, Sergey Bylokhov wrote:
On 12/6/19 7:24 pm, Prasanta Sadhukhan wrote:
How other components which may use HTML inside calculates its
preferred size? I do not remember that they additionally scale the
values returned by the View.
Maybe those components does not use preferredSize calculation as
JTooltip does.
Even if it not used, the preferredSize of the components and views
should return correct values.
getPreferredSize() is called from ToolTipManager but it is done
*before *calling Tooltip.show() which actually triggers
PropertyChangeEvent with "graphicsConfiguration" property.
Now, View is updated by calling BasicHTML.updateRenderer() when
"graphicsConfiguration" property is fired to notify transform is
changed, so during preferredSize() call, the View has not yet been
updated with correct transform.
It means that the View should use GCOnfig of its parent-parent-etc,
which is default/main GC if the components/windows are invisible or
the GC of the real screen where the component/window is located. Or
the size of the tooltip should be revalidated at the moment we found
that the preferred size was calculated using the wrong GC.
I think we should do both steps above.
Note that we should never calculate "coordinate_XY * scale" and return
this value to the user. The result of "coord*scale" should be only
used when we pass the data to the native code, in all other places we
should use just plain coordinates in the user's space.
So, my proposed fix is still same
http://cr.openjdk.java.net/~psadhukhan/8213535/webrev.1/
Regards
Prasanta