X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FRow.cpp;h=58a23805f2ff35491df7fe56d265fcda40e85b52;hb=af5f69cea77a4ebf277f0e951b66f1d833d46bf4;hp=2bfe55a1b80d46d00b1aad0fbd6253d9910a4e74;hpb=7137826896beed3590f8dce6e6b7ce3c422ceea2;p=lyx.git diff --git a/src/Row.cpp b/src/Row.cpp index 2bfe55a1b8..58a23805f2 100644 --- a/src/Row.cpp +++ b/src/Row.cpp @@ -66,8 +66,7 @@ double Row::Element::pos2x(pos_type const i) const double w = 0; //handle first the two bounds of the element - if (i == endpos && type != VIRTUAL - && !(inset && inset->lyxCode() == SEPARATOR_CODE)) + if (i == endpos && type != VIRTUAL) w = isRTL() ? 0 : full_width(); else if (i == pos || type != STRING) w = isRTL() ? full_width() : 0; @@ -129,17 +128,6 @@ bool Row::Element::breakAt(int w, bool force) return true; } - // Qt will not break at a leading space, and we need that sometimes, see - // http://www.lyx.org/trac/ticket/9921. - // It would be nice to fix this properly, but for now do it by hand. - // FIXME: figure out what to do for RtL text. - if (!isRTL() && !str.empty() && str[0] == ' ') { - dim.wid = 0; - str = ' '; - endpos = pos + 1; - return true; - } - return false; } @@ -160,7 +148,8 @@ Row::Row() : separator(0), label_hfill(0), left_margin(0), right_margin(0), sel_beg(-1), sel_end(-1), begin_margin_sel(false), end_margin_sel(false), - changed_(false), crc_(0), pos_(0), end_(0), right_boundary_(false) + changed_(false), crc_(0), + pit_(0), pos_(0), end_(0), right_boundary_(false) {} @@ -424,10 +413,10 @@ void Row::pop_back() } -void Row::shortenIfNeeded(pos_type const keep, int const w) +bool Row::shortenIfNeeded(pos_type const keep, int const w) { if (empty() || width() <= w) - return; + return false; Elements::iterator const beg = elements_.begin(); Elements::iterator const end = elements_.end(); @@ -444,7 +433,7 @@ void Row::shortenIfNeeded(pos_type const keep, int const w) if (cit == end) { // This should not happen since the row is too long. LYXERR0("Something is wrong cannot shorten row: " << *this); - return; + return false; } // Iterate backwards over breakable elements and try to break them @@ -487,7 +476,7 @@ void Row::shortenIfNeeded(pos_type const keep, int const w) dim_.wid = wid_brk + brk.dim.wid; // If there are other elements, they should be removed. elements_.erase(cit_brk + 1, end); - return; + return true; } } @@ -504,7 +493,7 @@ void Row::shortenIfNeeded(pos_type const keep, int const w) end_ = cit->pos; dim_.wid = wid; elements_.erase(cit, end); - return; + return true; } /* If we are here, it means that we have not found a separator to @@ -519,7 +508,9 @@ void Row::shortenIfNeeded(pos_type const keep, int const w) dim_.wid = wid + cit->dim.wid; // If there are other elements, they should be removed. elements_.erase(next(cit, 1), end); + return true; } + return false; }