On Mon, Mar 11, 2013 at 9:11 PM, Ryosuke Niwa <rn...@webkit.org> wrote:

> On Mon, Mar 11, 2013 at 8:54 PM, Shezan Baig <shezbaig...@gmail.com>wrote:
>
>> We are in the process of porting our native Windows application from
>> using a proprietary rendering framework to using WebKit as our
>> rendering framework.  Our application is not Chrome, neither is it
>> Safari, Firefox, or Opera.  In fact, it isn't a web browser at all.
>>
>> Throughout this effort, we've come across many instances where we have
>> had to modify WebKit in order to make our application work the way our
>> users expect it to.  All these changes are maintained in our own
>> private fork, which we frequently merge with upstream.
>>
>> Yes, our users *do* expect overtype mode to work, and yes, we do want
>> a blinking block cursor, however I consider that as an orthogonal
>> setting and not necessarily tied to overtype mode.  The way I
>> envisioned this would be that the embedding application would set a
>> property on the contenteditable div to turn on/off the overtype mode,
>> based on some UI interaction (whether it is via the Insert key, or
>> some menu command is up to the application).  When the contenteditable
>> is in overtype mode, this essentially makes TypingCommand replace the
>> next character instead of inserting characters.  This is a behavior
>> change *only*, not a visual change.
>>
>> When the application switches the overtype mode on/off, it would also
>> at the same time modify the appearance of the cursor (in our app, this
>> will be done via non-standard css properties, like "caret-width" and
>> "caret-color", and yes, we only plan use this for fixed-width fonts).
>>
>
> Have you tested your code with bidirectional text?  I don't think using
> block caret will work due to the way offsets at bidi-level boundary works
> in WebKit. In particular, suppose we have, in the document/byte order,
> ABC123 where ABC are strongly RTL letters in a LTR block. Then this text is
> rendered as:
> 123CBA
>
> If we were to place logical/DOM offset at where they appear visually, we
> have:
> (0)1(1)2(2)3C(5)B(4)A(3)(6)
>

Oh oops, I'm sorry.  I messed this up.  It should be:
(0)1(5)2(4)3C(2)B(1)A(3)(6)
instead.

i.e. At offset 3, the caret will visually appear on the right of "A". If
> you were just setting the caret width, the caret will look as if we're
> inserting a character on the right of "A", which is extremely misleading to
> a user.
>

- R. Niwa
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to