summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorOliver Specht <oliver.specht@cib.de>2016-12-30 16:47:17 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-01-26 12:01:21 +0000
commita6f3ca06100bc23eee5017d6cf53e89282dc580d (patch)
treeaacf736ec60852bf8b72599e33afe479bc23d896 /editeng
parent5891a45fa08729ba01f78bece9312b2c01d3a214 (diff)
tdf#101828 handle rtf/richtext correctly
Change-Id: Id894f62a918bd6e6fa59f8d546307343bf2bd4b0 Reviewed-on: https://gerrit.libreoffice.org/32682 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 048e30c1f8231e6cd144a9251061f6fa127b353e) Reviewed-on: https://gerrit.libreoffice.org/33567 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/editeng/eeobj.cxx8
-rw-r--r--editeng/source/editeng/impedit2.cxx11
2 files changed, 15 insertions, 4 deletions
diff --git a/editeng/source/editeng/eeobj.cxx b/editeng/source/editeng/eeobj.cxx
index 7347fa3f9ca8..c72354e3bb16 100644
--- a/editeng/source/editeng/eeobj.cxx
+++ b/editeng/source/editeng/eeobj.cxx
@@ -57,7 +57,7 @@ uno::Any EditDataObject::getTransferData( const datatransfer::DataFlavor& rFlavo
{
aAny <<= GetString();
}
- else if ( ( nT == SotClipboardFormatId::EDITENGINE ) || ( nT == SotClipboardFormatId::RTF ) )
+ else if ( ( nT == SotClipboardFormatId::EDITENGINE ) || ( nT == SotClipboardFormatId::RTF ) || ( nT == SotClipboardFormatId::RICHTEXT ) )
{
// No RTF on demand any more:
// 1) Was not working, because I had to flush() the clipboard immediately anyway
@@ -84,10 +84,11 @@ uno::Any EditDataObject::getTransferData( const datatransfer::DataFlavor& rFlavo
uno::Sequence< datatransfer::DataFlavor > EditDataObject::getTransferDataFlavors( ) throw(uno::RuntimeException, std::exception)
{
- uno::Sequence< datatransfer::DataFlavor > aDataFlavors(3);
+ uno::Sequence< datatransfer::DataFlavor > aDataFlavors(4);
SotExchange::GetFormatDataFlavor( SotClipboardFormatId::EDITENGINE, aDataFlavors.getArray()[0] );
SotExchange::GetFormatDataFlavor( SotClipboardFormatId::STRING, aDataFlavors.getArray()[1] );
SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RTF, aDataFlavors.getArray()[2] );
+ SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RICHTEXT, aDataFlavors.getArray()[3] );
return aDataFlavors;
}
@@ -97,7 +98,8 @@ sal_Bool EditDataObject::isDataFlavorSupported( const datatransfer::DataFlavor&
bool bSupported = false;
SotClipboardFormatId nT = SotExchange::GetFormat( rFlavor );
- if ( ( nT == SotClipboardFormatId::STRING ) || ( nT == SotClipboardFormatId::RTF ) || ( nT == SotClipboardFormatId::EDITENGINE ) )
+ if ( ( nT == SotClipboardFormatId::STRING ) || ( nT == SotClipboardFormatId::RTF ) || ( nT == SotClipboardFormatId::RICHTEXT )
+ || ( nT == SotClipboardFormatId::EDITENGINE ) )
bSupported = true;
return bSupported;
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 4de0042675fc..a879060b0b28 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -3490,8 +3490,17 @@ EditSelection ImpEditEngine::InsertText( uno::Reference< datatransfer::XTransfer
{
// RTF
SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RTF, aFlavor );
- if ( rxDataObj->isDataFlavorSupported( aFlavor ) )
+ // RICHTEXT
+ datatransfer::DataFlavor aFlavorRichtext;
+ SotExchange::GetFormatDataFlavor( SotClipboardFormatId::RTF, aFlavorRichtext );
+ bool bRtfSupported = rxDataObj->isDataFlavorSupported( aFlavor );
+ bool bRichtextSupported = rxDataObj->isDataFlavorSupported( aFlavorRichtext );
+ if ( bRtfSupported || bRichtextSupported )
{
+ if(bRichtextSupported)
+ {
+ aFlavor = aFlavorRichtext;
+ }
try
{
uno::Any aData = rxDataObj->getTransferData( aFlavor );