]> git.lyx.org Git - features.git/commitdiff
More precise fix for bug 1654
authorMartin Vermeer <martin.vermeer@hut.fi>
Wed, 6 Apr 2005 07:38:24 +0000 (07:38 +0000)
committerMartin Vermeer <martin.vermeer@hut.fi>
Wed, 6 Apr 2005 07:38:24 +0000 (07:38 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9783 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/CutAndPaste.C

index d8d82c72c2602f09922e1063af5c216528b99985..9930e770a922cb57c80fc500fbae20a78d621d52 100644 (file)
@@ -1,3 +1,9 @@
+2005-04-06  Martin Vermeer  <martin.vermeer@hut.fi>
+
+       * CutAndPaste.C (eraseSelection): more precise fix for bug 1654,
+       preventing inserted font, deco, delim insets jumping to start of
+       surrounding inset.
+
 2005-03-30  Jean-Marc Lasgouttes  <lasgouttes@lyx.org>
 
        * lyxfunc.C (dispatch): translate message before sending it to the
index af8912c0fdb78b3f5f791c07f3100d3440f25f78..4c5195cfbe01d6f760b23445832f0c06fced64de 100644 (file)
@@ -670,6 +670,7 @@ void eraseSelection(LCursor & cur)
        CursorSlice const & i1 = cur.selBegin();
        CursorSlice const & i2 = cur.selEnd();
        if (i1.inset().asMathInset()) {
+               cur.top() = i1;
                if (i1.idx() == i2.idx()) {
                        i1.cell().erase(i1.pos(), i2.pos());
                } else {
@@ -680,9 +681,9 @@ void eraseSelection(LCursor & cur)
                        for (InsetBase::row_type row = r1; row <= r2; ++row)
                                for (InsetBase::col_type col = c1; col <= c2; ++col)
                                        p->cell(p->index(row, col)).clear();
+                       // We've deleted the whole cell. Only pos 0 is valid.
+                       cur.pos() = 0; 
                }
-               cur.top() = i1;
-               cur.pos() = 0; // We've deleted the whole cell. Only pos 0 is valid.
                cur.resetAnchor();
        } else {
                lyxerr << "can't erase this selection 1" << endl;