commit c0ef31d9b9816a81d00ae3f37625ff69e1be30ec
Author: Juergen Spitzmueller <[email protected]>
Date: Wed Dec 6 09:11:18 2017 +0100
Recreate citation label after paste
Fixes: #10829
(cherry picked from commit 7e34e659431691fd723e408010f90973c0a25b39)
---
src/CutAndPaste.cpp | 11 +++++++++++
src/insets/InsetCitation.h | 2 ++
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp
index f611d59..57a8313 100644
--- a/src/CutAndPaste.cpp
+++ b/src/CutAndPaste.cpp
@@ -40,6 +40,7 @@
#include "insets/InsetBibitem.h"
#include "insets/InsetBranch.h"
+#include "insets/InsetCitation.h"
#include "insets/InsetCommand.h"
#include "insets/InsetFlex.h"
#include "insets/InsetGraphics.h"
@@ -357,6 +358,16 @@ pasteSelectionHelper(DocIterator const & cur,
ParagraphList const & parlist,
break;
}
+ case CITE_CODE: {
+ InsetCitation & cit = static_cast<InsetCitation &>(*it);
+ // This actually only needs to be done if the cite
engine
+ // differs, but we do it in general.
+ cit.redoLabel();
+ // We need to update the list of citations.
+ need_update = true;
+ break;
+ }
+
case BIBITEM_CODE: {
// check for duplicates
InsetBibitem & bib = static_cast<InsetBibitem &>(*it);
diff --git a/src/insets/InsetCitation.h b/src/insets/InsetCitation.h
index 992a85e..3e5e3ba 100644
--- a/src/insets/InsetCitation.h
+++ b/src/insets/InsetCitation.h
@@ -82,6 +82,8 @@ public:
static bool isCompatibleCommand(std::string const &);
//@}
///
+ void redoLabel() { cache.recalculate = true; }
+ ///
CitationStyle getCitationStyle(BufferParams const & bp, std::string
const & input,
std::vector<CitationStyle> const &
valid_styles) const;
///