RowList::iterator rowit);
/// Calculate and set the height of the row
- void setHeightOfRow(RowList::iterator rit);
+ void setHeightOfRow(ParagraphList::iterator, RowList::iterator rit);
// fix the cursor `cur' after a characters has been deleted at `where'
// position. Called by deleteEmptyParagraphMechanism
Row const & row) const;
/// returns the minimum space a row needs on the screen in pixel
- int fill(RowList::iterator row, int workwidth) const;
+ int fill(ParagraphList::iterator pit,
+ RowList::iterator row, int workwidth) const;
/**
* returns the minimum space a manual label needs on the
// are *NOT* allowed in the LaTeX realisation of this layout.
// find the first row of this paragraph
- RowList::iterator tmprit = rowlist_.begin();
- while (tmprit != rowlist_.end()
- && getPar(tmprit) != pit)
- ++tmprit;
-
- int minfill = tmprit->fill();
- while (boost::next(tmprit) != rowlist_.end() &&
- getPar(boost::next(tmprit)) == pit) {
- ++tmprit;
- if (tmprit->fill() < minfill)
- minfill = tmprit->fill();
- }
+ RowList::iterator rit = beginRow(pit);
+ RowList::iterator end = endRow(pit);
+ int minfill = rit->fill();
+ for ( ; rit != end; ++rit)
+ if (rit->fill() < minfill)
+ minfill = rit->fill();
x += font_metrics::signedWidth(layout->leftmargin,
tclass.defaultfont());
// returns the minimum space a row needs on the screen in pixel
-int LyXText::fill(RowList::iterator row, int paper_width) const
+int LyXText::fill(ParagraphList::iterator pit,
+ RowList::iterator row, int paper_width) const
{
if (paper_width < 0)
return 0;
int w;
// get the pure distance
- ParagraphList::iterator pit = getPar(row);
pos_type const last = lastPrintablePos(*this, pit, row);
LyXLayout_ptr const & layout = pit->layout();
}
-void LyXText::setHeightOfRow(RowList::iterator rit)
+void LyXText::setHeightOfRow(ParagraphList::iterator pit, RowList::iterator rit)
{
Assert(rit != rows().end());
// ok, let us initialize the maxasc and maxdesc value.
// Only the fontsize count. The other properties
// are taken from the layoutfont. Nicer on the screen :)
- ParagraphList::iterator pit = getPar(rit);
-
LyXLayout_ptr const & layout = pit->layout();
// as max get the first character of this row then it can increase but not
cursorLeft(bv());
// the layout things can change the height of a row !
- setHeightOfRow(cursorRow());
+ setHeightOfRow(cursor.par(), cursorRow());
return;
}
}
// Set the dimensions of the row
// fixed fill setting now by calling inset->update() in
- // SingleWidth when needed!
- tmprow->fill(fill(tmprow, workWidth()));
- setHeightOfRow(tmprow);
+ // singleWidth when needed!
+ tmprow->fill(fill(pit, tmprow, workWidth()));
+ setHeightOfRow(pit, tmprow);
} while (!done);
}
RowList::iterator rit = cursorRow();
RowList::iterator next_rit = boost::next(rit);
+ RowList::iterator end = boost::next(rit);
ParagraphList::iterator pit = cursor.par();
pos_type last_pos = lastPos(*this, pit, rit);
- if (next_rit == rows().end() || getPar(next_rit) != pit) {
+ if (next_rit == end) {
++last_pos;
} else {
if (pit->empty() ||
redoParagraph(getPar(tmprit));
updateCounters();
}
- setHeightOfRow(prevrow);
+ setHeightOfRow(getPar(prevrow), prevrow);
} else {
RowList::iterator nextrow = boost::next(getRow(old_cursor));
if (tmp->params().startOfAppendix()) {
recordUndo(bv, Undo::ATOMIC, tmp);
tmp->params().startOfAppendix(false);
- setHeightOfRow(getRow(tmp, 0));
+ setHeightOfRow(tmp, getRow(tmp, 0));
break;
}
}