]> git.lyx.org Git - features.git/commitdiff
Fix "right click removes selection" problem
authorAndré Pönitz <poenitz@gmx.net>
Wed, 30 Oct 2002 08:33:57 +0000 (08:33 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Wed, 30 Oct 2002 08:33:57 +0000 (08:33 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5553 a592a061-630c-0410-9148-cb99ea01b6c8

src/mathed/formulabase.C

index a50f6a84a87051cbe565327fb23b488ff2035d79..529719eb86262dd4ae02892bf69b6ec06b53a596 100644 (file)
@@ -344,19 +344,22 @@ Inset::RESULT InsetFormulaBase::lfunMouseRelease(FuncRequest const & cmd)
 Inset::RESULT InsetFormulaBase::lfunMousePress(FuncRequest const & cmd)
 {
        BufferView * bv = cmd.view();
-       releaseMathCursor(bv);
-       mathcursor = new MathCursor(this, cmd.x == 0);
        //lyxerr << "lfunMousePress: buttons: " << cmd.button() << "\n";
 
+       if (!mathcursor || mathcursor->formula() != this) {
+               lyxerr << "re-create cursor\n";
+               releaseMathCursor(bv);
+               mathcursor = new MathCursor(this, cmd.x == 0);
+               metrics(bv);
+               mathcursor->setPos(cmd.x + xo_, cmd.y + yo_);
+       }
+
        if (cmd.button() == mouse_button::button3) {
                mathcursor->dispatch(cmd);
                return DISPATCHED;
        }
 
        if (cmd.button() == mouse_button::button1) {
-               // just set the cursor here
-               //lyxerr << "setting cursor\n";
-               metrics(bv);
                first_x = cmd.x;
                first_y = cmd.y;
                mathcursor->selClear();