for (pit_type pit = start; pit != end; ++pit) {
pars_[pit].applyLayout(lyxlayout);
if (lyxlayout->margintype == MARGIN_MANUAL)
- pars_[pit].setLabelWidthString(lyxlayout->labelstring());
+ pars_[pit].setLabelWidthString(buffer.translateLabel(lyxlayout->labelstring()));
}
}
}
-string LyXText::getStringToIndex(LCursor const & cur)
+docstring LyXText::getStringToIndex(LCursor const & cur)
{
BOOST_ASSERT(this == cur.text());
idxstring = tmpcur.selectionAsString(false);
}
- return to_utf8(idxstring);
+ return idxstring;
}
void LyXText::setParagraph(LCursor & cur,
Spacing const & spacing, LyXAlignment align,
- string const & labelwidthstring, bool noindent)
+ docstring const & labelwidthstring, bool noindent)
{
BOOST_ASSERT(cur.text());
// make sure that the depth behind the selection are restored, too
else
params.align(align);
}
- // FIXME UNICODE
- par.setLabelWidthString(from_ascii(labelwidthstring));
+ par.setLabelWidthString(labelwidthstring);
params.noindent(noindent);
}
}
bool bound = false;
int xx = x; // is modified by getColumnNearX
- pos_type const pos = row.pos() + getColumnNearX(cur.bv(), pit, row, xx, bound);
+ pos_type const pos = row.pos()
+ + getColumnNearX(cur.bv(), pit, row, xx, bound);
cur.pit() = pit;
cur.pos() = pos;
cur.boundary(bound);
return 0;
}
+ InsetBase * insetBefore = pos? pars_[pit].getInset(pos - 1): 0;
+ //InsetBase * insetBehind = pars_[pit].getInset(pos);
+
// This should be just before or just behind the
// cursor position set above.
- InsetBase * inset2 = pars_[pit].getInset(pos - 1);
- InsetBase * inset3 = pars_[pit].getInset(pos);
-
- BOOST_ASSERT((pos != 0 && inset == inset2)
- || inset == inset3);
+ BOOST_ASSERT((pos != 0 && inset == insetBefore)
+ || inset == pars_[pit].getInset(pos));
+
// Make sure the cursor points to the position before
// this inset.
- if (inset == pars_[pit].getInset(pos - 1))
+ if (inset == insetBefore)
--cur.pos();
+
+ // Try to descend recursively inside the inset.
inset = inset->editXY(cur, x, y);
+
if (cur.top().text() == this)
setCurrentFont(cur);
return inset;
bool LyXText::cursorLeft(LCursor & cur)
{
+ // Tell BufferView to test for FitCursor in any case!
+ cur.updateFlags(Update::FitCursor);
+
if (!cur.boundary() && cur.pos() > 0 &&
cur.textRow().pos() == cur.pos() &&
!cur.paragraph().isLineSeparator(cur.pos()-1) &&
bool LyXText::cursorRight(LCursor & cur)
{
+ // Tell BufferView to test for FitCursor in any case!
+ cur.updateFlags(Update::FitCursor);
+
if (cur.pos() != cur.lastpos()) {
if (cur.boundary())
return setCursor(cur, cur.pit(), cur.pos(),
bool LyXText::cursorUp(LCursor & cur)
{
+ // Tell BufferView to test for FitCursor in any case!
+ cur.updateFlags(Update::FitCursor);
+
Paragraph const & par = cur.paragraph();
int row;
int const x = cur.targetX();
bool LyXText::cursorDown(LCursor & cur)
{
+ // Tell BufferView to test for FitCursor in any case!
+ cur.updateFlags(Update::FitCursor);
+
Paragraph const & par = cur.paragraph();
int row;
int const x = cur.targetX();