]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathNest.cpp
Small improvement for bug #7509 as suggested by JMarc
[lyx.git] / src / mathed / InsetMathNest.cpp
index 25204bc91bcacc7bbdae76a78bfd8f5e951bf459..8e04e2a5d99df83eae328ef58cb37afa162f8141 100644 (file)
@@ -371,6 +371,7 @@ MathData InsetMathNest::glue() const
 
 void InsetMathNest::write(WriteStream & os) const
 {
+       MathEnsurer ensurer(os, currentMode() == MATH_MODE);
        ModeSpecifier specifier(os, currentMode(), lockedMode());
        docstring const latex_name = name();
        os << '\\' << latex_name;
@@ -402,11 +403,19 @@ void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const
        wi.canBreakLine(os.canBreakLine());
        write(wi);
        os.canBreakLine(wi.canBreakLine());
-       os.texrow().newlines(wi.line());
+
+       int lf = wi.line();
+       if (lf > 0 && runparams.lastid != -1) {
+               --lf;
+               os.texrow().newline();
+               os.texrow().start(runparams.lastid, runparams.lastpos);
+       }
+       os.texrow().newlines(lf);
 }
 
 
 bool InsetMathNest::setMouseHover(BufferView const * bv, bool mouse_hover)
+       const
 {
        mouse_hover_[bv] = mouse_hover;
        return true;
@@ -1456,6 +1465,15 @@ void InsetMathNest::lfunMousePress(Cursor & cur, FuncRequest & cmd)
 {
        //lyxerr << "## lfunMousePress: buttons: " << cmd.button() << endl;
        BufferView & bv = cur.bv();
+       if (cmd.button() == mouse_button::button3) {
+               // Don't do anything if we right-click a
+               // selection, a context menu will popup.
+               if (bv.cursor().selection() && cur >= bv.cursor().selectionBegin()
+                     && cur < bv.cursor().selectionEnd()) {
+                       cur.noScreenUpdate();
+                       return;
+               }
+       }
        bool do_selection = cmd.button() == mouse_button::button1
                && cmd.argument() == "region-select";
        bv.mouseSetCursor(cur, do_selection);