<Swing Dev> [9] Review Request for 6866751: J2SE_Swing_Reg: the caret disappears when moving to the end of the line.

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Tue Mar 24 18:55:50 UTC 2015


24.03.15 9:10, Semyon Sadetsky wrote:
>> What happens if the user will set the size/aspect of the caret via 
>> "putClientProperty" after the fix? 
> It depends on specific Cursor implementation.
Yes, but only DefaultCaret is uses these properties for drawing, because 
this is our class and we know that. So in the another place we can copy 
and use code from the getCaretWidth(as in the fix). But can we do the 
same assumption for some other carets and use Caret.width? Is it enough 
to always use 1px? which cover all situations and does not adds any side 
affects if the user change the caret width via Caret.width(as you 
mention below)?

>
>> It seems that correct width of the caret can be obtained via 
>> DefaultCaret.getCaretWidth (It takes into account both properties: 
>> aspectRatio/caretWidth). Probably we can push implementation of this 
>> method to the Caret class itself(in jdk9) or at least share the code 
>> somehow? Note that we can initialize caretWidth for each L&F by 
>> default to 1(or to Caret.width) if this value is correct, so the user 
>> will be able take current value which is used by Swing.
> DefaultCaret.getCaretWidth(height) has package visibility.
> DefaultCaret implementation can be retired by API 
> JTextComponet.setCaret(Caret). So what you've proposed is not a 
> complete solution as well.
> An introduction a new method in the Caret interface is too drastic 
> change. And I'm not sure that font height can be the only parameter 
> for all possible Caret implementations.
>
> 1px seems a good solution for the issue because caret width=1px in 
> 99.9% cases. Currently under the System LnF we don't see this 1px 
> caret at all on platforms. That solution will be a great improvment.
>
> For specific situations like custom caret aspect ratio and custom 
> caret shape I'm not sure. If we add the full right text padding for 
> such situations users who already use custom carets may not expect 
> such behavior. It can be too noticeable change when all text 
> components will receive large right padding.
>
> --Semyon
>
>>
>> 23.03.15 14:57, Semyon Sadetsky wrote:
>>> +description
>>> Cursor size is added to any text control preferred width.
>>>
>>> On 3/23/2015 2:33 PM, Semyon Sadetsky wrote:
>>>> Hello,
>>>>
>>>> Please review JDK9 fix.
>>>>
>>>> webrev: 
>>>> http://cr.openjdk.java.net/~alexsch/semyon-sadetsky/6866751/webrev.00/
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-6866751
>>>>
>>>> Thanks!
>>>> --Semyon
>>>
>>
>>
>


-- 
Best regards, Sergey.




More information about the swing-dev mailing list