]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathNest.cpp
Cmake export tests: Added sublabel handling also to revertedTests
[lyx.git] / src / mathed / InsetMathNest.cpp
index c17d3844583ffc7a616337fc105789c3e6e1c539..90007c072ea3f41d15c0509a9f2a3b565c4aaa68 100644 (file)
@@ -250,7 +250,9 @@ bool InsetMathNest::idxLast(Cursor & cur) const
 void InsetMathNest::dump() const
 {
        odocstringstream oss;
-       WriteStream os(oss);
+       TexRow texrow(false);
+       otexrowstream ots(oss,texrow);
+       WriteStream os(ots);
        os << "---------------------------------------------\n";
        write(os);
        os << "\n";
@@ -376,8 +378,11 @@ void InsetMathNest::write(WriteStream & os) const
        ModeSpecifier specifier(os, currentMode(), lockedMode());
        docstring const latex_name = name();
        os << '\\' << latex_name;
-       for (size_t i = 0; i < nargs(); ++i)
+       for (size_t i = 0; i < nargs(); ++i) {
+               os.pushRowEntry(TexRow::mathEntry(id(),i));
                os << '{' << cell(i) << '}';
+               os.popRowEntry();
+       }
        if (nargs() == 0)
                os.pendingSpace(true);
        if (lock_ && !os.latex()) {
@@ -398,22 +403,20 @@ void InsetMathNest::normalize(NormalStream & os) const
 
 void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const
 {
-       WriteStream wi(os.os(), runparams.moving_arg, true,
-                      runparams.dryrun ? WriteStream::wsDryrun : WriteStream::wsDefault,
-                      runparams.encoding);
+       WriteStream wi(os, runparams.moving_arg, true,
+                       runparams.dryrun ? WriteStream::wsDryrun : WriteStream::wsDefault,
+                       runparams.encoding);
        wi.canBreakLine(os.canBreakLine());
-       write(wi);
+       if (runparams.lastid != -1) {
+               wi.pushRowEntry(os.texrow().textEntry(runparams.lastid,
+                                                                                         runparams.lastpos));
+               write(wi);
+               wi.popRowEntry();
+       } else
+               write(wi);
        // Reset parbreak status after a math inset.
        os.lastChar(0);
        os.canBreakLine(wi.canBreakLine());
-
-       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);
 }
 
 
@@ -636,6 +639,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_CHAR_BACKWARD:
        case LFUN_CHAR_FORWARD:
                cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+               // fall through
        case LFUN_CHAR_RIGHT_SELECT:
        case LFUN_CHAR_LEFT_SELECT:
        case LFUN_CHAR_BACKWARD_SELECT:
@@ -696,6 +700,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_DOWN:
        case LFUN_UP:
                cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+               // fall through
        case LFUN_DOWN_SELECT:
        case LFUN_UP_SELECT: {
                // close active macro
@@ -744,6 +749,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_PARAGRAPH_UP:
        case LFUN_PARAGRAPH_DOWN:
                cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+               // fall through
        case LFUN_PARAGRAPH_UP_SELECT:
        case LFUN_PARAGRAPH_DOWN_SELECT:
                break;
@@ -752,6 +758,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_WORD_BACKWARD:
        case LFUN_WORD_LEFT:
                cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+               // fall through
        case LFUN_LINE_BEGIN_SELECT:
        case LFUN_WORD_BACKWARD_SELECT:
        case LFUN_WORD_LEFT_SELECT:
@@ -777,6 +784,7 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_WORD_RIGHT:
        case LFUN_LINE_END:
                cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+               // fall through
        case LFUN_WORD_FORWARD_SELECT:
        case LFUN_WORD_RIGHT_SELECT:
        case LFUN_LINE_END_SELECT:
@@ -993,11 +1001,11 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_FONT_DEFAULT:
                handleFont(cur, cmd.argument(), "textnormal");
                break;
-
        case LFUN_FONT_UNDERLINE:
                cur.recordUndo();
                cur.handleNest(createInsetMath("underline", cur.buffer()));
                break;
+
        case LFUN_MATH_MODE: {
 #if 1
                // ignore math-mode on when already in math mode
@@ -2156,6 +2164,7 @@ MathCompletionList::MathCompletionList(Cursor const & cur)
        globals.push_back(from_ascii("\\sqrt"));
        globals.push_back(from_ascii("\\root"));
        globals.push_back(from_ascii("\\tabular"));
+       globals.push_back(from_ascii("\\sideset"));
        globals.push_back(from_ascii("\\stackrel"));
        globals.push_back(from_ascii("\\stackrelthree"));
        globals.push_back(from_ascii("\\binom"));