Subject: line-prefix and display text properties cause odd cursor movement
From: Darius Foo <[email-masked]>
To: [email-masked]
Date: Sat, 18 Feb 2023 00:39:00 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

When moving the cursor up and down on lines which have both line-prefix and
display text properties, the cursor column isn't preserved, jumping ahead
or back by a fixed amount.

This can be reproduced with the following config

      (add-text-properties 12 13 '(line-prefix "  "))
      (add-text-properties 27 28 '(line-prefix "  "))
      (add-text-properties 57 58 '(line-prefix "    "))
      (add-text-properties 72 73 '(line-prefix "    "))

      (add-text-properties 12 13 '(display "•"))
      (add-text-properties 27 28 '(display "•"))
      (add-text-properties 57 58 '(display "•"))
      (add-text-properties 72 73 '(display "•"))

and this input file (which mimics org-indent).

    * h1
    ** h2
    - a.y.........
    - x...........
    *** h3
    **** h4
    - ....w.......
    - z...........

With the cursor on x, pressing up moves it to y instead of a, and pressing
down moves it back to x. The amount moved depends on the indentation added
by line-prefix: with the cursor on z, pressing up moves it to w.