<Swing Dev> [9] Review Request for 6866751: J2SE_Swing_Reg: the caret disappears when moving to the end of the line.
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Thu Apr 9 08:44:25 UTC 2015
On 4/1/2015 5:45 PM, Semyon Sadetsky wrote:
> Hi Sergey,
>
> I have added reading of the client property. It will also allow user
> to adjust the right margin for caret. The test scenario is also extended.
>
> the updated webrev:
> http://cr.openjdk.java.net/~ssadetsky/6866751/webrev.01/
If c.getClientProperty("caretWidth") is negative should
UIManager.get("Caret.width") or DEFAULT_CARET_MARGIN be used?
Thanks,
Alexandr.
>
> --Semyon
>
>
> On 3/24/2015 9:10 AM, Semyon Sadetsky wrote:
>> Hi Sergey,
>>
>> On 3/23/2015 5:41 PM, Sergey Bylokhov wrote:
>>> Hi, Semyon.
>>> It seems that "Caret.width" is platform specific property, right?
>>> (looks like it is initialized on windows only).
>> It can be set on any platform. If it is not set we take 1px which is
>> the default cursor width.
>>
>>> What happens if the user will set the size/aspect of the caret via
>>> "putClientProperty" after the fix?
>> It depends on specific Cursor implementation.
>>
>>> 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
>>>>
>>>
>>>
>>
>
More information about the swing-dev
mailing list