pair<PitPosPair, pit_type>
-pasteSelectionHelper(Buffer const & buffer,
- ParagraphList & pars, pit_type pit, int pos,
- ParagraphList const & parlist, textclass_type textclass,
- ErrorList & errorlist)
+pasteSelectionHelper(LCursor & cur, ParagraphList const & parlist,
+ textclass_type textclass, ErrorList & errorlist)
{
+ Buffer const & buffer = cur.buffer();
+ pit_type pit = cur.pit();
+ pos_type pos = cur.pos();
+ ParagraphList & pars = cur.text()->paragraphs();
+
if (parlist.empty())
return make_pair(PitPosPair(pit, pos), pit);
}
}
+ // If we are in an inset which returns forceDefaultParagraphs,
+ // set the paragraphs to default
+ // FIXME: pars[pit].forceDefaultParagraphs() should be enough,
+ // but returns the wrong values for tabular cells!
+ if (cur.inset().forceDefaultParagraphs(cur.idx())) {
+ LyXLayout_ptr const layout =
+ buffer.params().getLyXTextClass().defaultLayout();
+ ParagraphList::iterator const end = insertion.end();
+ for (ParagraphList::iterator par = insertion.begin();
+ par != end; ++par)
+ par->layout(layout);
+ }
+
// Make sure there is no class difference.
InsetText in;
// This works without copying any paragraph data because we have
PitPosPair ppp;
boost::tie(ppp, endpit) =
- pasteSelectionHelper(cur.buffer(),
- text->paragraphs(),
- cur.pit(), cur.pos(),
- parlist, textclass,
- errorList);
+ pasteSelectionHelper(cur, parlist,
+ textclass, errorList);
updateLabels(cur.buffer());
cur.clearSelection();
text->setCursor(cur, ppp.first, ppp.second);
}
InsetCollapsable::doDispatch(cur, cmd);
break;
- case LFUN_PASTE:
- case LFUN_CLIPBOARD_PASTE:
- case LFUN_PRIMARY_SELECTION_PASTE:
- InsetCollapsable::doDispatch(cur, cmd);
- if (!params_.inner_box)
- forceParagraphsToDefault(cur);
- break;
default:
InsetCollapsable::doDispatch(cur, cmd);
{
setInlined();
switch (cmd.action) {
- case LFUN_MOUSE_PRESS:
+
+ case LFUN_MOUSE_PRESS:
if (cmd.button() == mouse_button::button3)
has_label_ = !has_label_;
else
InsetText::doDispatch(cur, cmd);
break;
- case LFUN_PASTE:
- case LFUN_CLIPBOARD_PASTE:
- case LFUN_PRIMARY_SELECTION_PASTE: {
+
+ default:
InsetCollapsable::doDispatch(cur, cmd);
- forceParagraphsToDefault(cur);
break;
- }
- default:
- InsetCollapsable::doDispatch(cur, cmd);
- break;
}
}
}
-void InsetText::forceParagraphsToDefault(LCursor & cur)
-{
- BufferParams const & bp = cur.buffer().params();
- LyXLayout_ptr const layout =
- bp.getLyXTextClass().defaultLayout();
- ParagraphList::iterator const end = paragraphs().end();
- for (ParagraphList::iterator par = paragraphs().begin();
- par != end; ++par)
- par->layout(layout);
-}
-
-
void InsetText::doDispatch(LCursor & cur, FuncRequest & cmd)
{
lyxerr[Debug::DEBUG] << BOOST_CURRENT_FUNCTION