]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_nestinset.C
rename priv_dispatch to doDispatch
[lyx.git] / src / mathed / math_nestinset.C
index 432bd33b5232359bb76b986e14c8974d76e642a5..79d058907e3ce0f105bca9010f9d95b3ddebe3d4 100644 (file)
@@ -380,7 +380,7 @@ void MathNestInset::handleFont2(LCursor & cur, string const & arg)
 }
 
 
-void MathNestInset::priv_dispatch(LCursor & cur, FuncRequest & cmd)
+void MathNestInset::doDispatch(LCursor & cur, FuncRequest & cmd)
 {
        //lyxerr << "MathNestInset: request: " << cmd << std::endl;
        //CursorSlice sl = cur.current();
@@ -392,7 +392,7 @@ void MathNestInset::priv_dispatch(LCursor & cur, FuncRequest & cmd)
                cur.message(_("Paste"));
                replaceSelection(cur);
                size_t n = 0;
-               istringstream is(cmd.argument.c_str());
+               istringstream is(cmd.argument);
                is >> n;
                pasteSelection(cur, n);
                cur.clearSelection(); // bug 393
@@ -612,7 +612,7 @@ void MathNestInset::priv_dispatch(LCursor & cur, FuncRequest & cmd)
                lyxerr << "LFUN_SETXY broken!" << endl;
                int x = 0;
                int y = 0;
-               istringstream is(cmd.argument.c_str());
+               istringstream is(cmd.argument);
                is >> x >> y;
                cur.setScreenPos(x, y);
                break;
@@ -684,6 +684,9 @@ void MathNestInset::priv_dispatch(LCursor & cur, FuncRequest & cmd)
 
        case LFUN_MATH_MODE:
 #if 1
+               // ignore math-mode on when already in math mode
+               if (currentMode() == InsetBase::MATH_MODE && cmd.argument == "on")
+                       break;
                cur.macroModeClose();
                selClearOrDel(cur);
                cur.plainInsert(MathAtom(new MathMBoxInset(cur.bv())));
@@ -791,7 +794,7 @@ void MathNestInset::priv_dispatch(LCursor & cur, FuncRequest & cmd)
        }
 
        default:
-               MathDimInset::priv_dispatch(cur, cmd);
+               MathDimInset::doDispatch(cur, cmd);
                break;
        }
 }
@@ -924,17 +927,17 @@ void MathNestInset::lfunMousePress(LCursor & cur, FuncRequest & cmd)
 void MathNestInset::lfunMouseMotion(LCursor & cur, FuncRequest & cmd)
 {
        // only select with button 1
-       if (cmd.button() != mouse_button::button1)
-               return;
-
-       if (abs(cmd.x - first_x) < 2 && abs(cmd.y - first_y) < 2)
-               return;
-
-       first_x = cmd.x;
-       first_y = cmd.y;
-
-       cur.bv().cursor().setCursor(cur);
-       cur.bv().cursor().selection() = true;
+       if (cmd.button() == mouse_button::button1) {
+               LCursor & bvcur = cur.bv().cursor();
+               if (abs(cmd.x - first_x) + abs(cmd.y - first_y) > 4
+                   && bvcur.anchor_.hasPart(cur)) {
+                       first_x = cmd.x;
+                       first_y = cmd.y;
+
+                       bvcur.setCursor(cur);
+                       bvcur.selection() = true;
+               }
+       }
 }
 
 
@@ -943,7 +946,6 @@ void MathNestInset::lfunMouseRelease(LCursor & cur, FuncRequest & cmd)
        lyxerr << "lfunMouseRelease: buttons: " << cmd.button() << endl;
 
        if (cmd.button() == mouse_button::button1) {
-               // try to dispatch to enclosed insets first
                //cur.bv().stuffClipboard(cur.grabSelection());
                return;
        }