commit 1030c70b4820e85c4e2f7b5c5a624782a9c0dbc5
Author: Juergen Spitzmueller <[email protected]>
Date:   Sun Aug 11 08:15:57 2019 +0200

    Force LTR for numeric citations
    
    Fixes: #3005
    (cherry picked from commit cce9adc1859f0134800c2405200f1467c8564b13)
---
 src/insets/InsetCitation.cpp |   15 +++++++++++++++
 src/insets/InsetCitation.h   |    2 ++
 status.23x                   |    2 ++
 3 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp
index 2444126..3e0bd6f 100644
--- a/src/insets/InsetCitation.cpp
+++ b/src/insets/InsetCitation.cpp
@@ -19,6 +19,7 @@
 #include "BufferParams.h"
 #include "BufferView.h"
 #include "DispatchResult.h"
+#include "Font.h"
 #include "FuncCode.h"
 #include "FuncRequest.h"
 #include "FuncStatus.h"
@@ -443,6 +444,20 @@ docstring InsetCitation::basicLabel(bool for_xhtml) const
        return '[' + label + ']';
 }
 
+
+bool InsetCitation::forceLTR(OutputParams const & rp) const
+{
+       // We have to force LTR for numeric references
+       // [= plain BibTeX, numeric natbib and biblatex].
+       // Except for XeTeX/bidi . See #3005.
+       if (rp.local_font->isRightToLeft()
+           && rp.use_polyglossia
+           && rp.flavor == OutputParams::XETEX)
+               return false;
+       return (buffer().masterParams().citeEngine().list().front() == "basic"
+               || buffer().masterParams().citeEngineType() == 
ENGINE_TYPE_NUMERICAL);
+}
+
 docstring InsetCitation::screenLabel() const
 {
        return cache.screen_label;
diff --git a/src/insets/InsetCitation.h b/src/insets/InsetCitation.h
index a8e9e18..7962809 100644
--- a/src/insets/InsetCitation.h
+++ b/src/insets/InsetCitation.h
@@ -70,6 +70,8 @@ public:
                                  UpdateType utype, TocBackend & backend) const;
        ///
        std::string contextMenuName() const;
+       ///
+       bool forceLTR(OutputParams const &) const;
        //@}
 
        /// \name Static public methods obligated for InsetCommand derived 
classes
diff --git a/status.23x b/status.23x
index 160126d..e005d5e 100644
--- a/status.23x
+++ b/status.23x
@@ -90,6 +90,8 @@ What's new
 
 - Fix direction of roman numbers with RTL documents and LuaTeX.
 
+- Fix direction of numbered citations outside XeTeX/bidi (bug 3005).
+
 - Fix direction of references with XeTeX/bidi (bug 11626).
 
 - Fix interplay of the memoir class and custom page size/geometry (bug 10970).
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to