]> git.lyx.org Git - features.git/commitdiff
Fixed jumping mathed cursor in text-insets.
authorJürgen Vigna <jug@sad.it>
Mon, 30 Oct 2000 12:03:18 +0000 (12:03 +0000)
committerJürgen Vigna <jug@sad.it>
Mon, 30 Oct 2000 12:03:18 +0000 (12:03 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1173 a592a061-630c-0410-9148-cb99ea01b6c8

ChangeLog
src/BufferView2.C
src/insets/insettext.C
src/lyxfunc.C

index 911247c86ae38e681c57157612e71df58769f304..e4e823ee2f00e212b4d5af3f0f3f403d70eb9852 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2000-10-30  Juergen Vigna  <jug@sad.it>
+
+       * src/insets/insettext.C (InsertInset): fixed this as the cursor
+       has to be Left of the inset otherwise LyXText won't find it!
+
+       * src/BufferView2.C (open_new_inset): delete the inset if it can
+       not be inserted.
+
 2000-10-30  Rob Lahaye  <lahaye@postech.edu>
 
        * lyx.man: fix typo.
index a4d3325fb08d703b04258c20ceffb87c65aac4b8..5fe3075ef1b789daee52bbfa1639e6588e01c71c 100644 (file)
@@ -264,10 +264,12 @@ bool BufferView::open_new_inset(UpdatableInset * new_inset)
 {
        beforeChange();
        text->FinishUndo();
-       if (!insertInset(new_inset))
+       if (!insertInset(new_inset)) {
+               delete new_inset;
                return false;
-       text->CursorLeft(this);
-       update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
+       }
+//     text->CursorLeft(this);
+//     update(BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
        new_inset->Edit(this, 0, 0, 0);
        return true;
 }
index 0dc00b5668801bd5be29728b98fe95c2f3a376cd..a114219575ec1536498bd74ea838833c0bbda7ae 100644 (file)
@@ -1266,16 +1266,14 @@ bool InsetText::InsertInset(BufferView * bv, Inset * inset)
              bv->text->cursor.par()->next
 #endif
            );
-    if (inset->Editable() == Inset::IS_EDITABLE) {
-       UpdatableInset * i = static_cast<UpdatableInset *>(inset);
-       i->setOwner(static_cast<UpdatableInset *>(this));
-    }
+    inset->setOwner(this);
     HideInsetCursor(bv);
     TEXT(bv)->InsertInset(bv, inset);
     TEXT(bv)->selection = 0;
+    TEXT(bv)->CursorLeft(bv);
     bv->fitCursor(TEXT(bv));
     UpdateLocal(bv, CURSOR_PAR, true);
-    static_cast<UpdatableInset*>(inset)->Edit(bv, 0, 0, 0);
+//    inset->Edit(bv, 0, 0, 0);
     ShowInsetCursor(bv);
     return true;
 }
index 2398c8cf7cff8b67d3578cdf6a58727a813e69bd..5bc2838f293dffa9f09ca0b86986850b80e99222 100644 (file)
@@ -2585,13 +2585,14 @@ string const LyXFunc::Dispatch(int ac,
        case LFUN_INSERT_MATRIX:
        {          
                if (owner->view()->available()) { 
-                       owner->view()->
-                               open_new_inset(new InsetFormula(false));
-                       owner->view()
-                               ->theLockingInset()
-                               ->LocalDispatch(owner->view(),
-                                               action,
-                                               argument);
+                       if (owner->view()->
+                           open_new_inset(new InsetFormula(false)))
+                       {
+                               owner->view()->theLockingInset()
+                                       ->LocalDispatch(owner->view(),
+                                                       action,
+                                                       argument);
+                       }
                }
        }          
        break;