]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Lyx crashed after inserting, deleting and inserting float object.
[lyx.git] / src / Text3.cpp
index e730e268a198de167006eda687888b3242c18221..68f822173acc64d934bf4364c4a4d951dd47ef4c 100644 (file)
@@ -265,7 +265,7 @@ bool doInsertInset(Cursor & cur, Text * text,
                lyx::dispatch(FuncRequest(LFUN_PASTE, "0"));
                // reset first par to default
                if (cur.lastpit() != 0 || cur.lastpos() != 0) {
-                       Layout_ptr const layout =
+                       LayoutPtr const layout =
                                cur.buffer().params().getTextClass().defaultLayout();
                        cur.text()->paragraphs().begin()->layout(layout);
                }
@@ -954,7 +954,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                Paragraph & par = cur.paragraph();
                pos_type pos = cur.pos();
                BufferParams const & bufparams = bv->buffer().params();
-               Layout_ptr const & style = par.layout();
+               LayoutPtr const & style = par.layout();
                if (!style->pass_thru
                    && par.getFontSettings(bufparams, pos).language()->lang() != "hebrew") {
                        // this avoids a double undo
@@ -1271,7 +1271,11 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                // reposition the cursor to the caption
                cur.pit() = cap_pit;
                cur.pos() = 0;
-               cur.dispatch(FuncRequest(LFUN_CAPTION_INSERT));
+               // FIXME: This Text/Cursor dispatch handling is a mess!
+               // We cannot use Cursor::dispatch here it needs access to up to
+               // date metrics.
+               cur.text()->dispatch(cur, FuncRequest(LFUN_CAPTION_INSERT));
+               cur.updateFlags(Update::Force);
                // FIXME: When leaving the Float (or Wrap) inset we should
                // delete any empty paragraph left above or below the
                // caption.
@@ -1766,7 +1770,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                break;
        case LFUN_CHARSTYLE_INSERT:
                code = Inset::CHARSTYLE_CODE;
-               if (cur.buffer().params().getTextClass().charstyles().empty())
+               if (cur.buffer().params().getTextClass().insetlayouts().empty())
                        enable = false;
                break;
        case LFUN_BOX_INSERT: