summaryrefslogtreecommitdiff
path: root/src/hbfont.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2020-06-05 10:56:01 +0300
committerEli Zaretskii <eliz@gnu.org>2020-06-05 10:56:01 +0300
commit30a7ee505aca3cc285699bae1630a28185519d99 (patch)
treed3e5bfe5179793e8677229375c78fa5a10b16ca9 /src/hbfont.c
parent7d323f07c0b540547c4aab38069972a918eff9d3 (diff)
downloademacs-30a7ee505aca3cc285699bae1630a28185519d99.tar.gz
Fix Arabic shaping when eww/shr fill the text to be rendered
* src/hbfont.c (hbfont_shape): Don't use DIRECTION if the current buffer has bidi reordering disabled. (Bug#41005)
Diffstat (limited to 'src/hbfont.c')
-rw-r--r--src/hbfont.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/hbfont.c b/src/hbfont.c
index 576c5fe7f60..4b3f64ef504 100644
--- a/src/hbfont.c
+++ b/src/hbfont.c
@@ -26,6 +26,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
#include "composite.h"
#include "font.h"
#include "dispextern.h"
+#include "buffer.h"
#ifdef HAVE_NTGUI
@@ -438,7 +439,11 @@ hbfont_shape (Lisp_Object lgstring, Lisp_Object direction)
/* If the caller didn't provide a meaningful DIRECTION, let HarfBuzz
guess it. */
- if (!NILP (direction))
+ if (!NILP (direction)
+ /* If they bind bidi-display-reordering to nil, the DIRECTION
+ they provide is meaningless, and we should let HarfBuzz guess
+ the real direction. */
+ && !NILP (BVAR (current_buffer, bidi_display_reordering)))
{
hb_direction_t dir = HB_DIRECTION_LTR;
if (EQ (direction, QL2R))