From cd8338636395daaa2b9f7a27c3efdcfddc17f993 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Tue, 19 Jul 2022 12:31:50 +0200 Subject: [PATCH] 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. --- src/Text3.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Text3.cpp b/src/Text3.cpp index 5bfde06679..7422bea312 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -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; -- 2.39.2