// store whether the tabular stack is newer than the normal copy stack
// FIXME: this is a workaround for bug 1919. Should be removed for 1.5,
// when we (hopefully) have a one-for-all paste mechanism.
-bool dirty_tabular_stack_;
+bool dirty_tabular_stack_ = false;
void region(CursorSlice const & i1, CursorSlice const & i2,
LyXText * text = cur.text();
BOOST_ASSERT(text);
// Stuff what we got on the clipboard. Even if there is no selection.
-
- // There is a problem with having the stuffing here in that the
- // larger the selection the slower LyX will get. This can be
- // solved by running the line below only when the selection has
- // finished. The solution used currently just works, to make it
- // faster we need to be more clever and probably also have more
- // calls to theSelection().put. (Lgb)
-// theSelection().put(cur.selectionAsString(true));
-
+ if (realcut)
+ theClipboard().put(cur.selectionAsString(true));
// make sure that the depth behind the selection are restored, too
recordUndoSelection(cur);
// stuff the selection onto the X clipboard, from an explicit copy request
theClipboard().put(cur.selectionAsString(true));
+ copySelectionToStack(cur);
+}
+
+
+void copySelectionToStack(LCursor & cur)
+{
// this doesn't make sense, if there is no selection
if (!cur.selection())
return;
}
-// simple replacing. The font of the first selected character is used
void replaceSelectionWithString(LCursor & cur, docstring const & str, bool backwards)
{
recordUndo(cur);
void eraseSelection(LCursor & cur)
{
- //lyxerr << "LCursor::eraseSelection begin: " << cur << endl;
+ //lyxerr << "cap::eraseSelection begin: " << cur << endl;
CursorSlice const & i1 = cur.selBegin();
CursorSlice const & i2 = cur.selEnd();
if (i1.inset().asInsetMath()) {
} else {
lyxerr << "can't erase this selection 1" << endl;
}
- //lyxerr << "LCursor::eraseSelection end: " << cur << endl;
+ //lyxerr << "cap::eraseSelection end: " << cur << endl;
}
void selDel(LCursor & cur)
{
- //lyxerr << "LCursor::selDel" << endl;
+ //lyxerr << "cap::selDel" << endl;
if (cur.selection())
eraseSelection(cur);
}
void selClearOrDel(LCursor & cur)
{
- //lyxerr << "LCursor::selClearOrDel" << endl;
+ //lyxerr << "cap::selClearOrDel" << endl;
if (lyxrc.auto_region_delete)
selDel(cur);
else