<Swing Dev> [8] Review request for 8016833: Underlines and strikethrough not rendering correctly
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Sat Jun 29 20:43:40 UTC 2013
Hi, Anton.
Fix looks good.
Thanks.
On 24.06.2013 16:44, anton nashatyrev wrote:
> Hello, Sergey
>
> swing regression tests are all passed,
> some of swing JCK tests failed but the fail set is the same before
> and after fix.
>
> Regards,
> Anton.
>
> On 21.06.2013 17:26, Sergey Bylokhov wrote:
>> Hi, Anton.
>> Can you run swing's tests from the jdk and jck and check that there
>> is no new regressions.
>> Thanks.
>>
>> On 21.06.2013 16:59, anton nashatyrev wrote:
>>> Alexander,
>>>
>>> here is the separate issue for background:
>>> bugs.sun.com/view_bug.do?bug_id=8017266
>>>
>>> fixed webrev is here:
>>> http://cr.openjdk.java.net/~vkarnauk/8016833/jdk8/webrev.01/
>>>
>>> Thanks!
>>> Anton.
>>>
>>> On 21.06.2013 15:16, Alexander Scherbatiy wrote:
>>>> On 6/21/2013 3:00 PM, anton nashatyrev wrote:
>>>>> Hello, Alexander,
>>>>>
>>>>> thanks for your suggestion, though I'm not sure drawing a
>>>>> background has the same semantics as drawing underline. The latter
>>>>> may be though of as a part of glyph while for background it is ok
>>>>> to 'highlight' the space _reserved_ for a View. Also the taller
>>>>> highlight is almost not visible to a user comparing to incorrectly
>>>>> painted underline.
>>>>> I'd prefer either not to fix this at all or at least not to
>>>>> include the fix to this customer issue.
>>>> It could be filled as a separate issue.
>>>>>
>>>>> Had fixed the EDT issue in the test.
>>>> Could you send the updated webrev?
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>>
>>>>> Thanks,
>>>>> Anton.
>>>>>
>>>>> On 20.06.2013 18:57, Alexander Scherbatiy wrote:
>>>>>> On 6/20/2013 2:41 PM, anton nashatyrev wrote:
>>>>>>> Hello,
>>>>>>> could you please review the following fix:
>>>>>>>
>>>>>>> fix:
>>>>>>> http://cr.openjdk.java.net/~vkarnauk/8016833/jdk8/webrev.00/
>>>>>>> <http://cr.openjdk.java.net/%7Evkarnauk/8016833/jdk8/webrev.00/>
>>>>>>> bug: http://bugs.sun.com/view_bug.do?bug_id=8016833
>>>>>>>
>>>>>> It seem that there is the same problem with the background
>>>>>> color:
>>>>>> Style style = comp.addStyle("underlined superscript", null);
>>>>>> StyleConstants.setBackground(style, Color.BLUE);
>>>>>> ...
>>>>>> doc.insertString(doc.getLength(), "hello", style);
>>>>>>
>>>>>> because paint(Graphics g, Shape a) method in GlyphView uses
>>>>>> the alloc.height in the same way.
>>>>>>
>>>>>>
>>>>>> Could invoke all Swing methods on EDT and remove the comments
>>>>>> from the test:
>>>>>>
>>>>>> 266 // bug8016833 b = new bug8016833();
>>>>>> 267 // b.demo();
>>>>>>
>>>>>> Thanks,
>>>>>> Alexandr.
>>>>>>
>>>>>>> The reason of such behavior is that the superscripted GlyphView
>>>>>>> requested
>>>>>>> increased vertical span, since the alignment of value 1.0
>>>>>>> (GlyphView.getAligment(View.Y_AXIS) returns 1.0) isn't enough to
>>>>>>> paint it as
>>>>>>> high as required.
>>>>>>> (BTW, for subscripted text setting the alignment is enough)
>>>>>>>
>>>>>>> GlyphView.paintTextUsingColor() calculates the Y position of the
>>>>>>> underscore
>>>>>>> as following:
>>>>>>>
>>>>>>> int y = alloc.y + alloc.height - (int) painter.getDescent(this);
>>>>>>>
>>>>>>> but here alloc.height means the space _reserved_ for glyphs and
>>>>>>> not the
>>>>>>> actual boundary of the painted text. To fix that we need to
>>>>>>> substitute
>>>>>>> alloc.height with painter.getHeight(this).
>>>>>>>
>>>>>>> The fix looks safe since the GlyphView preferred vertical span
>>>>>>> is initially
>>>>>>> requested from the GlyphPainter.
>>>>>>>
>>>>>>> Thanks!
>>>>>>> Anton.
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>
--
Best regards, Sergey.
More information about the swing-dev
mailing list