diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index 8a18dd2956..19a71ffbb9 100644 --- a/src/TextMetrics.cpp +++ b/src/TextMetrics.cpp @@ -344,13 +344,6 @@ bool TextMetrics::isRTLBoundary(pit_type pit, pos_type pos, return false; Paragraph const & par = text_->getPar(pit); - bool left = font.isVisibleRightToLeft(); - bool right; - if (pos == par.size()) - right = par.isRTL(bv_->buffer().params()); - else - right = displayFont(pit, pos).isVisibleRightToLeft(); - // no RTL boundary at line break: // abc|\n -> move right -> abc\n (and not: abc\n| // FED FED| FED ) @@ -360,6 +353,13 @@ bool TextMetrics::isRTLBoundary(pit_type pit, pos_type pos, || par.isSeparator(pos - 1))) return false; + bool left = font.isVisibleRightToLeft(); + bool right; + if (pos == par.size()) + right = par.isRTL(bv_->buffer().params()); + else + right = displayFont(pit, pos).isVisibleRightToLeft(); + return left != right; }