commit 11c47ddfcfa8c83fd24b1e7e47279db32f1be9cd
Author: Juergen Spitzmueller <[email protected]>
Date:   Tue Dec 31 13:47:06 2019 +0100

    Do not copy deleted text to external clipboard
    
    Fixes #10416
---
 src/Cursor.cpp      |    8 ++++++--
 src/Cursor.h        |    3 ++-
 src/CutAndPaste.cpp |    6 +++---
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/Cursor.cpp b/src/Cursor.cpp
index 431aa16..97d4972 100644
--- a/src/Cursor.cpp
+++ b/src/Cursor.cpp
@@ -347,7 +347,7 @@ docstring parbreak(CursorData const * cur)
 }
 
 
-docstring CursorData::selectionAsString(bool with_label) const
+docstring CursorData::selectionAsString(bool const with_label, bool const 
skipdelete) const
 {
        if (!selection())
                return docstring();
@@ -355,8 +355,12 @@ docstring CursorData::selectionAsString(bool with_label) 
const
        if (inMathed())
                return cap::grabSelection(*this);
 
-       int const label = with_label
+       int label = with_label
                ? AS_STR_LABEL | AS_STR_INSETS : AS_STR_INSETS;
+       if (skipdelete)
+               label = with_label
+                               ? AS_STR_LABEL | AS_STR_INSETS | 
AS_STR_SKIPDELETE
+                               : AS_STR_INSETS | AS_STR_SKIPDELETE;
 
        idx_type const startidx = selBegin().idx();
        idx_type const endidx = selEnd().idx();
diff --git a/src/Cursor.h b/src/Cursor.h
index 4091790..ba353b6 100644
--- a/src/Cursor.h
+++ b/src/Cursor.h
@@ -154,7 +154,8 @@ public:
        DocIterator selectionEnd() const;
 
        ///
-       docstring selectionAsString(bool with_label) const;
+       docstring selectionAsString(bool const with_label,
+                                   bool const skipdelete = false) const;
        /// get some interesting description of top position
        void info(odocstream & os, bool devel_mode) const;
        ///
diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp
index d7a3a1f..4101933 100644
--- a/src/CutAndPaste.cpp
+++ b/src/CutAndPaste.cpp
@@ -950,7 +950,7 @@ void cutSelectionHelper(Cursor & cur, CutStack & cuts, bool 
realcut, bool putcli
                        // Even if there is no selection.
                        if (putclip)
                                putClipboard(cuts[0].first, cuts[0].second,
-                                            cur.selectionAsString(true));
+                                            cur.selectionAsString(true, true));
                }
 
                if (begpit != endpit)
@@ -1011,7 +1011,7 @@ void cutSelectionToTemp(Cursor & cur, bool realcut)
 
 void copySelection(Cursor const & cur)
 {
-       copySelection(cur, cur.selectionAsString(true));
+       copySelection(cur, cur.selectionAsString(true, true));
 }
 
 
@@ -1122,7 +1122,7 @@ void saveSelection(Cursor const & cur)
        if (cur.selection()
            && cur.selBegin() == cur.bv().cursor().selBegin()
            && cur.selEnd() == cur.bv().cursor().selEnd()) {
-               LYXERR(Debug::SELECTION, "saveSelection: '" << 
cur.selectionAsString(true) << "'");
+               LYXERR(Debug::SELECTION, "saveSelection: '" << 
cur.selectionAsString(true, true) << "'");
                copySelectionToStack(cur, selectionBuffer);
        }
 }
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to