From 90d39a8a22c3f75e7eb4a79062e1d94c1fa1ff85 Mon Sep 17 00:00:00 2001 From: Armin Le Grand Date: Wed, 29 Jan 2014 16:10:39 +0000 Subject: Resolves: #i124085# disabled CF_DIBV5... (no advantages but some problems), increased png support (cherry picked from commit c991f7cae8dcb306cb0d1f32bc5fcd8ea0a1ea81) Change-Id: I52bef1295b32eb3692a0428c96edd0c55287f34a --- dtrans/source/win32/dtobj/DOTransferable.cxx | 3 +++ dtrans/source/win32/dtobj/XTDataObject.cxx | 1 + dtrans/source/win32/ftransl/ftransl.cxx | 12 +++++++++--- 3 files changed, 13 insertions(+), 3 deletions(-) (limited to 'dtrans') diff --git a/dtrans/source/win32/dtobj/DOTransferable.cxx b/dtrans/source/win32/dtobj/DOTransferable.cxx index 83a8461f415a..ff1e8bb1fceb 100644 --- a/dtrans/source/win32/dtobj/DOTransferable.cxx +++ b/dtrans/source/win32/dtobj/DOTransferable.cxx @@ -116,6 +116,8 @@ Any SAL_CALL CDOTransferable::getTransferData( const DataFlavor& aFlavor ) Any aAny = makeAny( aUnicodeText ); return aAny; } + // #i124085# CF_DIBV5 should not be possible, but keep for reading from the + // clipboard for being on the safe side else if(CF_DIBV5 == fetc.getClipformat()) { // #i123407# CF_DIBV5 has priority; if the try to fetch this failed, @@ -353,6 +355,7 @@ CDOTransferable::ByteSequence_t SAL_CALL CDOTransferable::getClipboardData( CFor clipDataToByteStream( aFormatEtc.getClipformat( ), stgmedium, byteStream ); // format conversion if necessary + // #i124085# DIBV5 should not happen currently, but keep as a hint here if(CF_DIBV5 == aFormatEtc.getClipformat() || CF_DIB == aFormatEtc.getClipformat()) { byteStream = WinDIBToOOBMP(byteStream); diff --git a/dtrans/source/win32/dtobj/XTDataObject.cxx b/dtrans/source/win32/dtobj/XTDataObject.cxx index f17d356a8ae9..2ba89c176f5d 100644 --- a/dtrans/source/win32/dtobj/XTDataObject.cxx +++ b/dtrans/source/win32/dtobj/XTDataObject.cxx @@ -298,6 +298,7 @@ void SAL_CALL CXTDataObject::renderAnyDataAndSetupStgMedium( nRequiredMemSize = sizeof( sal_Int8 ) * clipDataStream.getLength( ) + 1; // prepare data for transmision + // #i124085# DIBV5 should not happen for now, but keep as hint here if ( CF_DIBV5 == fetc.cfFormat || CF_DIB == fetc.cfFormat ) { #ifdef DBG_UTIL diff --git a/dtrans/source/win32/ftransl/ftransl.cxx b/dtrans/source/win32/ftransl/ftransl.cxx index b77ac8a6bc00..4d256901c388 100644 --- a/dtrans/source/win32/ftransl/ftransl.cxx +++ b/dtrans/source/win32/ftransl/ftransl.cxx @@ -246,7 +246,13 @@ void SAL_CALL CDataFormatTranslator::initTranslationTable() //SOT_FORMATSTR_ID_DIF m_TranslTable.push_back(FormatEntry("application/x-openoffice-dif;windows_formatname=\"DIF\"", "DIF", "DIF", CF_DIF, CPPUTYPE_DEFAULT)); // SOT_FORMAT_BITMAP - m_TranslTable.push_back(FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", "Bitmap", CF_DIBV5, CPPUTYPE_DEFAULT)); + + // #i124085# CF_DIBV5 disabled, leads to problems at export. To fully support, using + // an own mime-type may be necessary. I have tried that, but saw no real advantages + // with different apps when exchanging bitmap-based data. So, disabled for now. At + // the same time increased png format exchange for better interoperability + //m_TranslTable.push_back(FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", "Bitmap", CF_DIBV5, CPPUTYPE_DEFAULT)); + m_TranslTable.push_back(FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", "Bitmap", CF_DIB, CPPUTYPE_DEFAULT)); m_TranslTable.push_back(FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", "Bitmap", CF_BITMAP, CPPUTYPE_DEFAULT)); // SOT_FORMAT_STRING @@ -477,9 +483,9 @@ void SAL_CALL CDataFormatTranslator::initTranslationTable() //SOT_FORMATSTR_ID_DIALOG_60 m_TranslTable.push_back(FormatEntry("application/vnd.sun.xml.dialog", "Dialog 6.0", NULL, CF_INVALID, CPPUTYPE_DEFAULT)); //SOT_FORMATSTR_ID_BMP - m_TranslTable.push_back(FormatEntry("image/bmp", "Windows Bitmap", NULL, CF_INVALID, CPPUTYPE_DEFAULT)); + m_TranslTable.push_back(FormatEntry("image/bmp", "Windows Bitmap", NULL, 49657 /* ID for "image/bmp" CF_INVALID*/, CPPUTYPE_DEFAULT)); //SOT_FORMATSTR_ID_PNG - m_TranslTable.push_back(FormatEntry("image/png", "PNG", NULL, CF_INVALID, CPPUTYPE_DEFAULT)); + m_TranslTable.push_back(FormatEntry("image/png", "PNG", NULL, 49656 /* ID for "image/png" CF_INVALID*/, CPPUTYPE_DEFAULT)); //SOT_FORMATSTR_ID_DUMMY3 m_TranslTable.push_back(FormatEntry("application/x-openoffice-dummy3;windows_formatname=\"SO_DUMMYFORMAT_3\"", "SO_DUMMYFORMAT_3", NULL, CF_INVALID, CPPUTYPE_DEFAULT)); //SOT_FORMATSTR_ID_DUMMY4 -- cgit