]> git.lyx.org Git - features.git/commitdiff
Fix a crash when copying flex insets to another document.
authorVincent van Ravesteijn <vfr@lyx.org>
Mon, 24 Aug 2009 23:02:50 +0000 (23:02 +0000)
committerVincent van Ravesteijn <vfr@lyx.org>
Mon, 24 Aug 2009 23:02:50 +0000 (23:02 +0000)
I know that Inset has a buffer, but we should be careful when handling Insets in CutAndPaste, these don't always have a buffer. Besides, we are in the function switchBetweenClasses(oldone, newone). Then it's pretty strange to ask the flex inset whether it is defined in its buffer->textclass, while we have an explicit new textclass defined.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31223 a592a061-630c-0410-9148-cb99ea01b6c8

src/CutAndPaste.cpp

index 96063774977460fb2b336ed752522c14b08da4db..944119f96554305f3e6408843db76e0508ed29d5 100644 (file)
@@ -608,7 +608,10 @@ void switchBetweenClasses(DocumentClass const * const oldone,
                if (it->lyxCode() != FLEX_CODE)
                        // FIXME: Should we verify all InsetCollapsable?
                        continue;
-               if (!it->undefined())
+               docstring const & n = newone->insetLayout(it->name()).name();
+               bool const is_undefined = n.empty() ||
+                       n == DocumentClass::plainInsetLayout().name();
+               if (!is_undefined)
                        continue;
                // The flex inset is undefined in newtc
                docstring const s = bformat(_(