Eli Zaretskii writes: >> From: Thamer Mahmoud >> Date: Sat, 14 Nov 2020 15:42:35 +0300 >> >> (with-current-buffer-window "*shaping testcase*" nil nil >> (insert "L2R عربي" "\n\n") >> (insert "عربي") >> (put-text-property 5 6 'face 'highlight) >> (put-text-property 11 12 'face 'highlight)) >> >> 2. Notice the AIN(ع) in the L2R paragraph has the wrong shape. > > This is a known limitation of the current Emacs display engine: it > cannot shape text across face changes. All the text that needs to be > shaped must have the same face. This problem has existed since Emacs > 21. > > Fixing this limitation would require a more or less complete redesign > of how the display engine scans the buffer text, or maybe some radical > changes in how character composition is handled. Until one of these > changes, this problem will remain unsolved, sorry. Shaping across face changes works for me in R2L paragraphs, but not in L2R. See the attached screenshot.