sw/CppunitTest_sw_ww8import.mk | 1 + sw/qa/extras/ww8import/data/transparent-text.doc |binary sw/qa/extras/ww8import/ww8import.cxx | 12 ++++++++++++ sw/source/filter/ww8/ww8par6.cxx | 7 +++++++ 4 files changed, 20 insertions(+)
New commits: commit 3082985399bc549cd5bcb675c4af2c91d8149413 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Mon Feb 24 09:44:36 2020 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon Feb 24 15:49:47 2020 +0100 tdf#130812 DOC import: fix unexpected transparency of text DOC can have black with transparency set to 0xff, and that is meant to be just black. Allow COL_AUTO, though; the rendering will not consider that as transparent anyway. Other than that, DOC does not support text with transparency, it's a DOCX-only feature. Change-Id: I33f61b54b8ebd7958845063ae61900182d6f5e80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89321 Reviewed-by: Miklos Vajna <vmik...@collabora.com> Tested-by: Jenkins (cherry picked from commit 634a9ba15d65b6fdc506326e6b49b4b957c5cfcb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89341 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> diff --git a/sw/CppunitTest_sw_ww8import.mk b/sw/CppunitTest_sw_ww8import.mk index 31a7dcbe80ba..fb21f9d03a63 100644 --- a/sw/CppunitTest_sw_ww8import.mk +++ b/sw/CppunitTest_sw_ww8import.mk @@ -26,6 +26,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sw_ww8import, \ vcl \ sfx \ sw \ + tl \ utl \ )) diff --git a/sw/qa/extras/ww8import/data/transparent-text.doc b/sw/qa/extras/ww8import/data/transparent-text.doc new file mode 100644 index 000000000000..b458db29cc09 Binary files /dev/null and b/sw/qa/extras/ww8import/data/transparent-text.doc differ diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx index e3763e60ba17..d58490f1b0da 100644 --- a/sw/qa/extras/ww8import/ww8import.cxx +++ b/sw/qa/extras/ww8import/ww8import.cxx @@ -94,6 +94,18 @@ DECLARE_WW8IMPORT_TEST(testTdf106291, "tdf106291.doc") CPPUNIT_ASSERT(cellHeight.toInt32() > 200); // height might depend on font size } +DECLARE_WW8IMPORT_TEST(testTransparentText, "transparent-text.doc") +{ + uno::Reference<text::XText> xHeaderText = getProperty<uno::Reference<text::XText>>( + getStyles("PageStyles")->getByName("Standard"), "HeaderText"); + uno::Reference<text::XTextRange> xParagraph = getParagraphOfText(3, xHeaderText); + // Without the accompanying fix in place, this test would have failed: transparency was set to + // 100%, so the text was not readable. + sal_Int32 nExpected(COL_BLACK); + sal_Int32 nActual(getProperty<sal_Int16>(xParagraph, "CharTransparence")); + CPPUNIT_ASSERT_EQUAL(nExpected, nActual); +} + DECLARE_WW8IMPORT_TEST( testTdf105570, "tdf105570.doc" ) { /***** diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 80f81b4b70cf..dd49c6957719 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -3486,6 +3486,13 @@ void SwWW8ImplReader::Read_TextForeColor(sal_uInt16, const sal_uInt8* pData, sho else { Color aColor(msfilter::util::BGRToRGB(SVBT32ToUInt32(pData))); + + // At least when transparency is 0xff and the color is black, Word renders that as black. + if (aColor.GetTransparency() && aColor != COL_AUTO) + { + aColor.SetTransparency(0); + } + NewAttr(SvxColorItem(aColor, RES_CHRATR_COLOR)); if (m_pCurrentColl && m_xStyles) m_xStyles->mbTextColChanged = true; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits