diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp index 73344bd7b7..0a0a9097b3 100644 --- a/src/insets/InsetTabular.cpp +++ b/src/insets/InsetTabular.cpp @@ -3226,7 +3226,7 @@ bool InsetTableCell::allowParagraphCustomization(idx_type) const bool InsetTableCell::getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus & status) const { - bool enabled; + bool enabled = true; switch (cmd.action()) { case LFUN_LAYOUT: enabled = !forcePlainLayout(); @@ -3234,6 +3234,12 @@ bool InsetTableCell::getStatus(Cursor & cur, FuncRequest const & cmd, case LFUN_LAYOUT_PARAGRAPH: enabled = allowParagraphCustomization(); break; + + case LFUN_MATH_DISPLAY: + if (!hasFixedWidth()) { + enabled = false; + break; + } //fall-through default: return InsetText::getStatus(cur, cmd, status); } diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp index 8ff7b230d4..04c5b82c3e 100644 --- a/src/mathed/InsetMathHull.cpp +++ b/src/mathed/InsetMathHull.cpp @@ -1480,9 +1480,25 @@ bool InsetMathHull::getStatus(Cursor & cur, FuncRequest const & cmd, return true; case LFUN_MATH_MUTATE: { - HullType ht = hullType(cmd.argument()); + HullType const ht = hullType(cmd.argument()); status.setOnOff(type_ == ht); - // fall through + status.setEnabled(true); + + if (ht != hullSimple) { + Cursor tmpcur = cur; + while (!tmpcur.empty()) { + InsetCode code = tmpcur.inset().lyxCode(); + if (code == BOX_CODE) { + return true; + } else if (code == TABULAR_CODE) { + FuncRequest tmpcmd(LFUN_MATH_DISPLAY); + if (tmpcur.getStatus(tmpcmd, status) && !status.enabled()) + return true; + } + tmpcur.pop_back(); + } + } + return true; } case LFUN_MATH_DISPLAY: { bool enable = true;