]> git.lyx.org Git - features.git/commitdiff
Disable flex-insert when inset does not exist
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 19 Jul 2022 10:31:50 +0000 (12:31 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 19 Jul 2022 10:31:50 +0000 (12:31 +0200)
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

index 5bfde0667958643cfd6c8831e239eeac65dac217..7422bea31249a1424740c694a5ce4f10e980f00b 100644 (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;