commit ae892bff98962359e3a29d0d3bc7e69bdc3ea72b
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Fri Mar 12 17:41:43 2021 +0100

    Fix copy of multi-cells in table (#12196)
---
 src/BufferView.cpp          |    7 +++++++
 src/insets/InsetTabular.cpp |    7 +++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 4289e31..79bf01f 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -2264,6 +2264,13 @@ void BufferView::dispatch(FuncRequest const & cmd, 
DispatchResult & dr)
        }
 
        case LFUN_COPY:
+               // With multi-cell table content, we pass down to the inset
+               if (cur.inTexted() && cur.selection()
+                   && cur.selectionBegin().idx() != cur.selectionEnd().idx()) {
+                       buffer_.dispatch(cmd, dr);
+                       dispatched = dr.dispatched();
+                       break;
+               }
                cap::copySelection(cur);
                cur.message(_("Copy"));
                break;
diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index ec2a7a3..cea677b 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -5262,6 +5262,13 @@ void InsetTabular::doDispatch(Cursor & cur, FuncRequest 
& cmd)
                }
                break;
 
+       case LFUN_COPY:
+               if (cur.selIsMultiCell())
+                       copySelection(cur);
+               else
+                       cell(cur.idx())->dispatch(cur, cmd);
+               break;
+
        case LFUN_CUT:
                if (cur.selIsMultiCell()) {
                        if (copySelection(cur)) {
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to