Suppress a number of illegal things in text-within-math

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9892 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Martin Vermeer 2005-05-01 16:15:32 +00:00
parent 8923218965
commit 6d5b9d7791
2 changed files with 37 additions and 13 deletions

View File

@ -1,4 +1,10 @@
2005-04-25 Martin Vermeer <martin.vermeer@hut.fi>a
2005-05-01 Martin Vermeer <martin.vermeer@hut.fi>
* math_nestinset.C (getStatus): suppress math/text fonts,
subscripts etc. to prevent lyx access to latex-illegal stuff
in text-inside-math (mbox)
2005-04-25 Martin Vermeer <martin.vermeer@hut.fi>
* math_gridinset.C (doDispatch):
* math_hullInset.C (doDispatch):

View File

@ -865,6 +865,7 @@ bool MathNestInset::getStatus(LCursor & /*cur*/, FuncRequest const & cmd,
// the font related toggles
//string tc = "mathnormal";
bool ret = true;
string const arg = cmd.argument;
switch (cmd.action) {
case LFUN_TABULAR_FEATURE:
flag.enabled(false);
@ -924,7 +925,21 @@ bool MathNestInset::getStatus(LCursor & /*cur*/, FuncRequest const & cmd,
case LFUN_MATH_EXTERN:
flag.enabled(true);
break;
case LFUN_INSERT_MATH: {
bool const textarg =
arg == "\\textbf" || arg == "\\textsf" ||
arg == "\\textrm" || arg == "\\textmd" ||
arg == "\\textit" || arg == "\\textsc" ||
arg == "\\textsl" || arg == "\\textup" ||
arg == "\\texttt" || arg == "\\textbb" ||
arg == "\\textnormal";
flag.enabled((currentMode() == MATH_MODE && !textarg)
|| (currentMode() == TEXT_MODE && textarg));
break;
}
case LFUN_INSERT_MATRIX:
flag.enabled(currentMode() == MATH_MODE);
break;
default:
ret = false;
break;
@ -1139,14 +1154,21 @@ bool MathNestInset::interpret(LCursor & cur, char c)
return cur.pos() != cur.lastpos();
}
if (c == '_') {
script(cur, false);
return true;
}
// These shouldn't work in text mode:
if (currentMode() != MathInset::TEXT_MODE) {
if (c == '_') {
script(cur, false);
return true;
}
if (c == '^') {
script(cur, true);
return true;
if (c == '^') {
script(cur, true);
return true;
}
if (c == '~') {
cur.niceInsert(createMathInset("sim"));
return true;
}
}
if (c == '{' || c == '}' || c == '&' || c == '$' || c == '#' || c == '%') {
@ -1154,10 +1176,6 @@ bool MathNestInset::interpret(LCursor & cur, char c)
return true;
}
if (c == '~') {
cur.niceInsert(createMathInset("sim"));
return true;
}
// try auto-correction
//if (autocorrect() && hasPrevAtom() && math_autocorrect(prevAtom(), c))