emacs-devel
[Top][All Lists]
Advanced

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

Re: Display problems with `before-string' in overlay


From: Richard Stallman
Subject: Re: Display problems with `before-string' in overlay
Date: Mon, 16 Apr 2007 00:31:48 -0400

    Let me try to explain (again) what the problem is.  It boils down to
    where to display the cursor when point is at the beginning/end of an
    overlay with a `display' property.  Currently, the cursor can show up
    at the following positions (where OOO denotes the overlay, and ABC
    denotes the surrounding characters):

     A B|O O O C   (point = 3)
     A B O O O|C   (point = 6)

I am not sure what you mean when you say "the cursor can show up".
Are you talking about where point is, or where the cursor appears?

    The problem arises when you have multi-line overlays.  In Emacs 21,
    redisplay used a simple rule (see cursor_row_p): "if PT is at the end
    of a row, and the row ends with a newline from a string, don't put
    cursor on that row."  This rule is desirable for multi-line
    before-strings:

     A B X X
     X|O C
     A B X X
     X O|C

I don't understand those examples.  What does X stand for?  Where is
the newline from a string?  And why would PT be at the end of that
row?  If that is two example, what is the relationship between them?
I'm completely lost here.

    But this rule is bad for multi-line display strings, because the
    cursor gets pushed down to the next line:

     A B O O
    |O C           (point = 3)
     A B O O
     O|C           (point = 6)

Once again, what is the relationshp between these two examples?

This function moves point, it doesn't do anything to _the cursor_
as such.  And when it moves point due to a property on an overlay,
it moves point to the end of the overlay.  So how could that ever
put point like this?

     A B O O
    |O C           (point = 3)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]