From: Jean-Marc Lasgouttes Date: Thu, 2 Feb 2012 13:39:05 +0000 (+0000) Subject: * InsetMathScript::doDispatch : properly record undo information before X-Git-Tag: 2.1.0beta1~2079 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=98cd6c60f71bdbacc945f2dbcb74cfacad4e52b5;p=features.git * InsetMathScript::doDispatch : properly record undo information before changing limits status (fixes bug #8007) * InsetMathScript::getStatus (new) : handle properly status for LFUN_MATH_LIMITS here, along with checkmark support for the menu) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40700 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp index affe7918c6..bd702464c3 100644 --- a/src/mathed/InsetMathNest.cpp +++ b/src/mathed/InsetMathNest.cpp @@ -1368,7 +1368,6 @@ bool InsetMathNest::getStatus(Cursor & cur, FuncRequest const & cmd, // we just need to be in math mode to enable that case LFUN_MATH_SIZE: case LFUN_MATH_SPACE: - case LFUN_MATH_LIMITS: case LFUN_MATH_EXTERN: flag.setEnabled(true); break; diff --git a/src/mathed/InsetMathScript.cpp b/src/mathed/InsetMathScript.cpp index ed06d363d6..a9f4b38bd1 100644 --- a/src/mathed/InsetMathScript.cpp +++ b/src/mathed/InsetMathScript.cpp @@ -14,6 +14,7 @@ #include "Cursor.h" #include "DispatchResult.h" #include "FuncRequest.h" +#include "FuncStatus.h" #include "InsetMathFont.h" #include "InsetMathScript.h" #include "InsetMathSymbol.h" @@ -754,6 +755,7 @@ void InsetMathScript::doDispatch(Cursor & cur, FuncRequest & cmd) //LYXERR("InsetMathScript: request: " << cmd); if (cmd.action() == LFUN_MATH_LIMITS) { + cur.recordUndoInset(); if (!cmd.argument().empty()) { if (cmd.argument() == "limits") limits_ = 1; @@ -772,6 +774,26 @@ void InsetMathScript::doDispatch(Cursor & cur, FuncRequest & cmd) } +bool InsetMathScript::getStatus(Cursor & cur, FuncRequest const & cmd, + FuncStatus & flag) const +{ + if (cmd.action() == LFUN_MATH_LIMITS) { + if (!cmd.argument().empty()) { + if (cmd.argument() == "limits") + flag.setOnOff(limits_ == 1); + else if (cmd.argument() == "nolimits") + flag.setOnOff(limits_ == -1); + else + flag.setOnOff(limits_ == 0); + } + flag.setEnabled(true); + return true; + } + + return InsetMathNest::getStatus(cur, cmd, flag); +} + + // the idea for dual scripts came from the eLyXer code void InsetMathScript::validate(LaTeXFeatures & features) const { diff --git a/src/mathed/InsetMathScript.h b/src/mathed/InsetMathScript.h index ecdda3b5a7..e84886b7d3 100644 --- a/src/mathed/InsetMathScript.h +++ b/src/mathed/InsetMathScript.h @@ -110,6 +110,9 @@ public: void validate(LaTeXFeatures &features) const; protected: virtual void doDispatch(Cursor & cur, FuncRequest & cmd); + /// do we want to handle this event? + bool getStatus(Cursor & cur, FuncRequest const & cmd, + FuncStatus & status) const; private: virtual Inset * clone() const; /// returns x offset for main part