X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_nestinset.C;h=79d058907e3ce0f105bca9010f9d95b3ddebe3d4;hb=183239b7def8ca0e51432f2d88891d4b9f055953;hp=432bd33b5232359bb76b986e14c8974d76e642a5;hpb=edbef46cd7865dab72ab6b503d62e2492479d297;p=lyx.git diff --git a/src/mathed/math_nestinset.C b/src/mathed/math_nestinset.C index 432bd33b52..79d058907e 100644 --- a/src/mathed/math_nestinset.C +++ b/src/mathed/math_nestinset.C @@ -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; }