sw/source/uibase/uno/unotxdoc.cxx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)
New commits: commit 193b907b2bc49b9e48cfab2583e81a24aaa2e666 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jun 18 14:03:00 2015 +0200 SwXTextDocument::getTextSelection: fix missing editeng forward When editing shape text, the text selection should be provided by editeng. Change-Id: I379f89fc28d2ff8172d0411bba347c959de6ab29 diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 268148e..6b81c637 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -142,6 +142,7 @@ #include <editeng/eeitem.hxx> #include <editeng/editeng.hxx> +#include <editeng/editview.hxx> #include <svx/svdoutl.hxx> #include <svl/languageoptions.hxx> #include <svx/svdview.hxx> @@ -3256,8 +3257,21 @@ void SwXTextDocument::setTextSelection(int nType, int nX, int nY) OString SwXTextDocument::getTextSelection(const char* pMimeType) { + uno::Reference<datatransfer::XTransferable> xTransferable; + SwWrtShell* pWrtShell = pDocShell->GetWrtShell(); - uno::Reference<datatransfer::XTransferable> xTransferable(new SwTransferable(*pWrtShell)); + if (SdrView* pSdrView = pWrtShell->GetDrawView()) + { + if (pSdrView->GetTextEditObject()) + { + // Editing shape text + EditView& rEditView = pSdrView->GetTextEditOutlinerView()->GetEditView(); + xTransferable = rEditView.GetEditEngine()->CreateTransferable(rEditView.GetSelection()); + } + } + + if (!xTransferable.is()) + xTransferable = new SwTransferable(*pWrtShell); // Take care of UTF-8 text here. OString aMimeType(pMimeType); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits