]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetFloat.cpp
DocBook: escape IDs for InsetRef.
[lyx.git] / src / insets / InsetFloat.cpp
index c9f90faf902201837b2e4a234e5e9a9d93582dce..1cd614e5ce073a69b8367f5580ad0e101f878af3 100644 (file)
  * Full author contact details are available in file CREDITS.
  */
 
-#include <typeinfo>
-
 #include <config.h>
-#include <xml.h>
 
 #include "InsetBox.h"
 #include "InsetCaption.h"
@@ -33,6 +30,7 @@
 #include "FuncStatus.h"
 #include "LaTeXFeatures.h"
 #include "Lexer.h"
+#include "xml.h"
 #include "output_docbook.h"
 #include "output_xhtml.h"
 #include "ParIterator.h"
@@ -164,6 +162,11 @@ void InsetFloat::doDispatch(Cursor & cur, FuncRequest & cmd)
        switch (cmd.action()) {
 
        case LFUN_INSET_MODIFY: {
+               if (!buffer().params().documentClass().floats().typeExist(cmd.getArg(0))) {
+                       // not for us: pass further.
+                       cur.undispatched();
+                       break;
+               }
                InsetFloatParams params;
                string2params(to_utf8(cmd.argument()), params);
                cur.recordUndoInset(this);
@@ -202,6 +205,9 @@ bool InsetFloat::getStatus(Cursor & cur, FuncRequest const & cmd,
        switch (cmd.action()) {
 
        case LFUN_INSET_MODIFY:
+               if (!buffer().params().documentClass().floats().typeExist(cmd.getArg(0)))
+                       return Inset::getStatus(cur, cmd, flag);
+       // fall through
        case LFUN_INSET_DIALOG_UPDATE:
                flag.setEnabled(true);
                return true;