[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#28312: 25.2; Arabic script changes when scrolling
From: |
Nick Helm |
Subject: |
bug#28312: 25.2; Arabic script changes when scrolling |
Date: |
Sun, 9 Jun 2019 23:56:22 +0000 |
Eli Zaretskii <eliz@gnu.org> writes:
> I eventually found the culprit: it turned out we sometimes stop
> examining buffer text at arbitrary positions, and don't make sure
> these positions are never in the middle of a composable character
> sequence. I implemented a solution, the patch is below.
> Unfortunately, it makes redisplay slower in buffers with lots of
> composable characters, so I hesitate to install it.
>
> Would people please try the patch and see if Emacs is still reasonably
> responsive in buffers with Arabic text, especially when marking or
> extending the region under transient-mark-mode? If I get enough
> positive feedback, I will install this. TIA.
I built yesterday's master and tested with and without the patch.
With the patch applied, I can confirm that the Arabic text in HELLO no
longer changes when scrolling, either with the keyboard or mouse.
However, I noticed that it still seems to change when extending the
region over Arabic text. That is, place point on the "c" of Arabic,
C-SPC, and C-f multiple times to extend the region and notice the
graphemes change. The mouse click and release method described up-thread
also shows the same thing.
Next, I opened a file written entirely in Arabic (~3000 words). Without
the patch, scrolling works as expected in all cases I tried. With the
patch applied, scrolling also works as expected unless pixel-scroll-mode
is active and scrolling is done with the mouse. With that mode active,
mouse scrolling introduces lag that takes 3–4 seconds to recover after
each scroll action. I would describe the lag as significant. I did not
notice the text changing when scrolling or clicking in this file.
I didn't notice any problems with setting the mark or extending the
region in any tests, other than in the HELLO file described above.
Thank you for working on this.
Nick