Disable flex-insert when inset does not exist

This is useful when adding icons to the toolbar that insert insets not
availble by default (but provided by a module).

Fixes bug #11690.
This commit is contained in:
Jean-Marc Lasgouttes 2022-07-19 12:31:50 +02:00
parent 96e7fcd4e0
commit cd83386363

View File

@ -3183,13 +3183,17 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
case LFUN_FLEX_INSERT: {
code = FLEX_CODE;
string s = cmd.getArg(0);
InsetLayout il =
cur.buffer()->params().documentClass().insetLayout(from_utf8(s));
if (il.lyxtype() != InsetLyXType::CHARSTYLE &&
il.lyxtype() != InsetLyXType::CUSTOM &&
il.lyxtype ()!= InsetLyXType::STANDARD)
if (!cur.buffer()->params().documentClass().hasInsetLayout(from_utf8(s)))
enable = false;
break;
else {
InsetLayout il =
cur.buffer()->params().documentClass().insetLayout(from_utf8(s));
if (il.lyxtype() != InsetLyXType::CHARSTYLE &&
il.lyxtype() != InsetLyXType::CUSTOM &&
il.lyxtype ()!= InsetLyXType::STANDARD)
enable = false;
}
break;
}
case LFUN_BOX_INSERT:
code = BOX_CODE;