summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorOliver Specht <oliver.specht@cib.de>2016-12-30 16:47:17 +0100
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2017-01-09 00:34:30 +0000
commit048e30c1f8231e6cd144a9251061f6fa127b353e (patch)
tree712f9d5cf96f28e01eb980f6314df855b619a7eb /editeng
parent6f0993f2365cd8b6ce53f7a6e705c7fc9bd07ab6 (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>
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 f3ed14f9f969..86023d33bb8a 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 );