From 1c7d39519795a364860994dd798e5b81bd1ab2cf Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Tue, 31 Jul 2007 13:34:09 +0000 Subject: [PATCH] * CutAndPaste.cpp (pasteSelection): do not set the selection after pasting. * Text3.cpp (doDispatch/LFUN_MOUSE_PRESS): reorganize the code to make sure that mouseSetCursor gets called (and therefore persistent selection stored as needed). git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19252 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/CutAndPaste.cpp | 1 - src/Text3.cpp | 31 +++++++++++-------------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp index c34fc5d230..491d4a0e76 100644 --- a/src/CutAndPaste.cpp +++ b/src/CutAndPaste.cpp @@ -791,7 +791,6 @@ void pasteSelection(Cursor & cur, ErrorList & errorList) recordUndo(cur); pasteParagraphList(cur, selectionBuffer[0].first, selectionBuffer[0].second, errorList); - cur.setSelection(); } diff --git a/src/Text3.cpp b/src/Text3.cpp index c879412f8e..157395564a 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -1015,43 +1015,34 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) // Single-click on work area case LFUN_MOUSE_PRESS: { - cap::saveSelection(bv->cursor()); // Right click on a footnote flag opens float menu if (cmd.button() == mouse_button::button3) cur.clearSelection(); - // Middle button press pastes if we have a selection - // We do this here as if the selection was inside an inset - // it could get cleared on the unlocking of the inset so - // we have to check this first - bool paste_internally = false; - if (cmd.button() == mouse_button::button2 && cap::selection()) { - // Copy the selection buffer to the clipboard - // stack, because we want it to appear in the - // "Edit->Paste recent" menu. - cap::copySelectionToStack(); - paste_internally = true; - } + // Set the cursor + bool update = bv->mouseSetCursor(cur); // Insert primary selection with middle mouse // if there is a local selection in the current buffer, // insert this if (cmd.button() == mouse_button::button2) { - if (paste_internally) { - cap::pasteSelection(cur, bv->buffer()->errorList("Paste")); + if (cap::selection()) { + // Copy the selection buffer to the clipboard + // stack, because we want it to appear in the + // "Edit->Paste recent" menu. + cap::copySelectionToStack(); + + cap::pasteSelection(bv->cursor(), + bv->buffer()->errorList("Paste")); bv->buffer()->errors("Paste"); - cur.clearSelection(); // bug 393 bv->buffer()->markDirty(); finishUndo(); } else { - bv->mouseSetCursor(cur); lyx::dispatch(FuncRequest(LFUN_PRIMARY_SELECTION_PASTE, "paragraph")); } } - // we have to update after dePM triggered - bool update = bv->mouseSetCursor(cur); - + // we have to update after dEPM triggered if (!update && cmd.button() == mouse_button::button1) { needsUpdate = false; cur.noUpdate(); -- 2.39.2