commit f0f4b98c6e00f6a07ca60814c9faa6acfb192961
Author: Juergen Spitzmueller <[email protected]>
Date: Thu Jul 11 08:25:18 2019 +0200
Brackets reversion differs in luabidi (LuaTeX) from bidi (XeTeX)
This amends [195f62ac93/lyxgit]
(cherry picked from commit d3aa1022603b94f101c3fc42a8d9a37cb6dc4432)
---
src/Paragraph.cpp | 18 ++++++++++++++++--
status.23x | 2 ++
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index 7d48407..d95c531 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1920,11 +1920,12 @@ char_type Paragraph::getUChar(BufferParams const &
bparams,
// Most likely, we should simply rely on Qt's unicode handling here.
string const & lang = getFontSettings(bparams, pos).language()->lang();
- // With polyglossia, brackets and stuff need not be reversed in RTL
scripts
+ // With polyglossia and XeTeX (bidi), brackets and stuff need not be
+ // reversed in RTL scripts
// FIXME: The special casing for Hebrew parens is due to the special
// handling on input (for Hebrew in e5f42f67d/lyxgit); see #8251.
char_type uc = c;
- if (rp.use_polyglossia) {
+ if (rp.use_polyglossia && rp.flavor == OutputParams::XETEX) {
switch (c) {
case '(':
if (lang == "hebrew")
@@ -1937,6 +1938,19 @@ char_type Paragraph::getUChar(BufferParams const &
bparams,
}
return uc;
}
+ // LuaTeX (luabidi) is different
+ if (rp.use_polyglossia && rp.flavor != OutputParams::XETEX) {
+ switch (c) {
+ case '(':
+ if (lang != "hebrew")
+ uc = ')';
+ break;
+ case ')':
+ if (lang != "hebrew")
+ uc = '(';
+ break;
+ }
+ }
// In the following languages, brackets don't need to be reversed.
// Furthermore, in arabic_arabi, they are transformed to Arabic
diff --git a/status.23x b/status.23x
index 53d3f96..a6750ea 100644
--- a/status.23x
+++ b/status.23x
@@ -74,6 +74,8 @@ What's new
- Fix paragraph alignment with RTL documents and LuaTeX (part of bug 11399).
+- Fix direction of brackets with RTL documents and LuaTeX (part of bug 11187).
+
* USER INTERFACE