From 453ec25b5d3e1fc0a6eed3454b88cce2e0ac101d Mon Sep 17 00:00:00 2001 From: vng Date: Fri, 2 Dec 2011 21:34:30 +0300 Subject: [PATCH] Fix aux-text processing in StraightTextElement. --- yg/straight_text_element.cpp | 6 ++++-- yg/text_element.cpp | 5 +++++ yg/text_element.hpp | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/yg/straight_text_element.cpp b/yg/straight_text_element.cpp index e68c7ddb91..88bee30a5c 100644 --- a/yg/straight_text_element.cpp +++ b/yg/straight_text_element.cpp @@ -87,7 +87,7 @@ namespace yg ASSERT(p.m_fontDesc.IsValid(), ()); buffer_vector res; - if ((p.m_doSplit) && (!isBidi())) + if (p.m_doSplit && !isBidi()) { res.clear(); if (!p.m_delimiters.empty()) @@ -117,13 +117,15 @@ namespace yg if (l.boundRects().back().GetGlobalRect().SizeX() > allElemWidth) { // should split - if ((p.m_doSplit) && (!isBidi())) + if (p.m_doSplit && !isAuxBidi()) { if (!p.m_delimiters.empty()) visSplit(auxVisText(), auxRes, p.m_delimiters.c_str(), p.m_delimiters.size()); else visSplit(auxVisText(), auxRes, " \n\t", 3); } + else + auxRes.push_back(auxVisText()); } else auxRes.push_back(auxVisText()); diff --git a/yg/text_element.cpp b/yg/text_element.cpp index 99e35538b4..bf2767dcb4 100644 --- a/yg/text_element.cpp +++ b/yg/text_element.cpp @@ -68,6 +68,11 @@ namespace yg return m_logText != m_visText; } + bool TextElement::isAuxBidi() const + { + return m_auxLogText != m_auxVisText; + } + void TextElement::drawTextImpl(GlyphLayout const & layout, gl::OverlayRenderer * screen, math::Matrix const & m, diff --git a/yg/text_element.hpp b/yg/text_element.hpp index cc9100460e..0fc88cd2fa 100644 --- a/yg/text_element.hpp +++ b/yg/text_element.hpp @@ -43,6 +43,7 @@ namespace yg mutable vector m_boundRects; bool isBidi() const; + bool isAuxBidi() const; protected: