X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FRow.cpp;h=58a23805f2ff35491df7fe56d265fcda40e85b52;hb=a700d657b3b06541b10ddae8cc5847bd46d06aae;hp=bd0945961f415eb44e8768534652dee672038ee2;hpb=b5871decc0d09a05de835aff09291c01c0116b3c;p=lyx.git diff --git a/src/Row.cpp b/src/Row.cpp index bd0945961f..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; @@ -128,6 +127,7 @@ bool Row::Element::breakAt(int w, bool force) //lyxerr << "breakAt(" << w << ") Row element Broken at " << x << "(w(str)=" << fm.width(str) << "): e=" << *this << endl; return true; } + return false; } @@ -148,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) {} @@ -412,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(); @@ -432,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 @@ -466,7 +467,7 @@ void Row::shortenIfNeeded(pos_type const keep, int const w) /* after breakAt, there may be spaces at the end of the * string, but they are not counted in the string length * (QTextLayout feature, actually). We remove them, but do - * not change the endo of the row, since the spaces at row + * not change the end of the row, since spaces at row * break are invisible. */ brk.str = rtrim(brk.str); @@ -475,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; } } @@ -492,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 @@ -507,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; }