bool gotsel = false;
if (cur.selection()) {
- lyx::dispatch(FuncRequest(LFUN_CUT));
+ cutSelection(cur, false, pastesel);
+ cur.clearSelection();
gotsel = true;
}
text->insertInset(cur, inset);
if (!gotsel || !pastesel)
return true;
- lyx::dispatch(FuncRequest(LFUN_PASTE, "0"));
+ pasteFromStack(cur, cur.buffer().errorList("Paste"), 0);
+ cur.buffer().errors("Paste");
+ cur.clearSelection(); // bug 393
+ cur.finishUndo();
InsetText * insetText = dynamic_cast<InsetText *>(inset);
if (insetText && !insetText->allowMultiPar() || cur.lastpit() == 0) {
// reset first par to default
// Merge multiple paragraphs -- hack
while (cur.lastpit() > 0)
mergeParagraph(bparams, cur.text()->paragraphs(), 0);
+ cur.leaveInset(*inset);
} else {
+ cur.leaveInset(*inset);
// reset surrounding par to default
docstring const layoutname = insetText->usePlainLayout()
? bparams.documentClass().emptyLayoutName()
: bparams.documentClass().defaultLayoutName();
- cur.leaveInset(*inset);
text->setLayout(cur, layoutname);
}
case LFUN_OUTLINE_DOWN:
case LFUN_OUTLINE_IN:
case LFUN_OUTLINE_OUT:
- enable = (cur.paragraph().layout().toclevel != Layout::NOT_IN_TOC);
+ // FIXME: LyX is not ready for outlining within inset.
+ enable = isMainText(cur.bv().buffer())
+ && cur.paragraph().layout().toclevel != Layout::NOT_IN_TOC;
break;
case LFUN_NEWLINE_INSERT: