diff --git a/src/laybasic/laybasic/layLayoutViewBase.cc b/src/laybasic/laybasic/layLayoutViewBase.cc index fb4ffd020..7823967e3 100644 --- a/src/laybasic/laybasic/layLayoutViewBase.cc +++ b/src/laybasic/laybasic/layLayoutViewBase.cc @@ -5297,11 +5297,7 @@ LayoutViewBase::paste_interactive () std::unique_ptr trans (new db::Transaction (manager (), tl::to_string (tr ("Paste and move")))); - { - // let the receivers sort out who is pasting what .. - do_paste (); - lay::Editables::paste (); - } + lay::Editables::paste (); // temporarily close the transaction and pass to the move service for appending it's own // operations. @@ -5314,6 +5310,12 @@ LayoutViewBase::paste_interactive () void LayoutViewBase::copy () +{ + copy_view_objects (); +} + +void +LayoutViewBase::copy_view_objects () { cancel_edits (); if (! lay::Editables::has_selection ()) { diff --git a/src/laybasic/laybasic/layLayoutViewBase.h b/src/laybasic/laybasic/layLayoutViewBase.h index f22e4cc34..eb6370bab 100644 --- a/src/laybasic/laybasic/layLayoutViewBase.h +++ b/src/laybasic/laybasic/layLayoutViewBase.h @@ -264,6 +264,13 @@ public: */ virtual void copy (); + /** + * @brief Copies to clipboard (view objects only) + * + * This version does not look for copy sources in the tree views. + */ + void copy_view_objects (); + /** * @brief Cuts to clipboard * diff --git a/src/layui/layui/layLayoutViewFunctions.cc b/src/layui/layui/layLayoutViewFunctions.cc index 36bc3d6ad..157b978ba 100644 --- a/src/layui/layui/layLayoutViewFunctions.cc +++ b/src/layui/layui/layLayoutViewFunctions.cc @@ -1177,7 +1177,7 @@ LayoutViewFunctions::do_cm_duplicate (bool interactive) db::Clipboard::instance ().swap (saved_clipboard); try { - view ()->copy (); + view ()->copy_view_objects (); view ()->clear_selection (); view ()->cancel (); if (interactive) {