X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftext2.C;h=0513d5181c24454afdcd574ff0d8553f070b2c41;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=16ca5c565b5a31afc8fff04f7a4aba2fe71d20a5;hpb=d06475855c85e16fec9b708779509cab1dd3a470;p=lyx.git diff --git a/src/text2.C b/src/text2.C index 16ca5c565b..0513d5181c 100644 --- a/src/text2.C +++ b/src/text2.C @@ -352,7 +352,7 @@ void LyXText::setLayout(Buffer const & buffer, pit_type start, pit_type end, 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())); } } @@ -604,7 +604,7 @@ docstring LyXText::getStringToIndex(LCursor const & cur) 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 @@ -628,8 +628,7 @@ void LyXText::setParagraph(LCursor & cur, else params.align(align); } - // FIXME UNICODE - par.setLabelWidthString(from_ascii(labelwidthstring)); + par.setLabelWidthString(labelwidthstring); params.noindent(noindent); } } @@ -970,7 +969,8 @@ InsetBase * LyXText::editXY(LCursor & cur, int x, int y) 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); @@ -986,18 +986,22 @@ InsetBase * LyXText::editXY(LCursor & cur, int x, int y) 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;