Re: Another --> Re: GtkMovementStep of GtkTextView



    Chookij> Just want to make sure that I understand the point, in Pango
    Chookij> technology, we are trying to sepearate between the "display"
    Chookij> algorithm and "cursor movement" algorithm. So, in this lam+alif
    Chookij> case, the cursor can be moved/placed in between lam and alif but
    Chookij> it's not because of 2 characters forms one cluster and they
    Chookij> aren't one single grapheme. It shouldn't be matter because the
    Chookij> display algorithm and cursor movement algorithm are
    Chookij> seperate. Right ?

    Mark> Correct.  When moving forward, the internal cursor moves over the
    Mark> LAM and ALIF characters while the external cursor moves over the
    Mark> single ligature (grapheme) of LAM-ALIF.

Correcting myself again.  Getting sloppy these days!

The cursor can be placed in between the LAM and ALIF because they are actually
two letters.  It just happens that the ligature (grapheme) has a single,
continuous shape.  To have an I-beam cursor blinking in the middle of a
LAM-ALIF ligature may seem perfectly natural to native users of the Arabic
script, but it would not look right to native users of Indic scripts.

So in the end, display and cursor motion are related to a point.  The way I
think about it is something like:

  1. All clusters of characters that combine to make a single glyph are
     treated as a single unit for cursor motion and deletion.

  2. The exceptions to 1 include things such as the LAM-ALIF ligatures in the
     Arabic script, Korean syllables, Vietnamese vowels, and Indic aksharas
     (clusters) as they are being typed.
-----------------------------------------------------------------------------
Mark Leisher                      Times are bad.  Children no longer obey
Computing Research Lab            their parents, and everyone is writing
New Mexico State University       a book.
Box 30001, Dept. 3CRL                -- Marcus Tullius Cicero
Las Cruces, NM  88003




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]