sw/qa/extras/ww8export/data/tdf128608_fillStyleNoneB.odt |binary
 sw/qa/extras/ww8export/ww8export3.cxx                    |    9 ++++++-
 sw/source/filter/ww8/ww8par6.cxx                         |   18 +++++----------
 3 files changed, 14 insertions(+), 13 deletions(-)

New commits:
commit b58225718f1915762d6c74de2ba9865250933c18
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Mon Nov 11 07:27:43 2019 +0300
Commit:     Xisco Faulí <xiscofa...@libreoffice.org>
CommitDate: Tue Nov 19 22:57:41 2019 +0100

    tdf#128608 ww8import: COL_AUTO == NO FILL, not solid
    
    This fixes problems in the patches for tdf#116071.
    
    Tables have nothing to do with this bug. It just is the most
    common place to have a background colour, and then to have
    direct formatting that reverts back to COL_AUTO. I created
    a unit test using the page background (black), default style
    paragraph background (blue), and direct formatting COL_AUTO.
    COL_AUTO was turned into WHITE if the fillstyle was set to SOLID.
    
    Change-Id: I8197c040cec5adbdf16f379a88fab5e534ac0c6e
    Reviewed-on: https://gerrit.libreoffice.org/82412
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_l...@sil.org>
    Reviewed-by: Xisco Faulí <xiscofa...@libreoffice.org>
    (cherry picked from commit b926a068a067e7aff6c8f11ed1098a76c39bf5e8)
    Reviewed-on: https://gerrit.libreoffice.org/83221

diff --git a/sw/qa/extras/ww8export/data/tdf128608_fillStyleNoneB.odt 
b/sw/qa/extras/ww8export/data/tdf128608_fillStyleNoneB.odt
new file mode 100644
index 000000000000..917dc96d40ba
Binary files /dev/null and 
b/sw/qa/extras/ww8export/data/tdf128608_fillStyleNoneB.odt differ
diff --git a/sw/qa/extras/ww8export/ww8export3.cxx 
b/sw/qa/extras/ww8export/ww8export3.cxx
index 96940648ad2b..014274e98bbf 100644
--- a/sw/qa/extras/ww8export/ww8export3.cxx
+++ b/sw/qa/extras/ww8export/ww8export3.cxx
@@ -202,7 +202,14 @@ DECLARE_WW8EXPORT_TEST(testTdf121111_fillStyleNone, 
"tdf121111_fillStyleNone.doc
 
     uno::Reference<text::XTextRange> xText(getParagraph(12));
     CPPUNIT_ASSERT_EQUAL(COL_AUTO, Color(getProperty<sal_uInt32>(xText, 
"ParaBackColor")));
-    CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, 
getProperty<drawing::FillStyle>(xText, "FillStyle"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("No fill", drawing::FillStyle_NONE, 
getProperty<drawing::FillStyle>(xText, "FillStyle"));
+}
+
+DECLARE_WW8EXPORT_TEST(testTdf128608_fillStyleNoneB, 
"tdf128608_fillStyleNoneB.odt")
+{
+    uno::Reference<text::XTextRange> xText(getParagraph(1));
+    CPPUNIT_ASSERT_EQUAL(COL_AUTO, Color(getProperty<sal_uInt32>(xText, 
"ParaBackColor")));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("No fill", drawing::FillStyle_NONE, 
getProperty<drawing::FillStyle>(xText, "FillStyle"));
 }
 
 DECLARE_WW8EXPORT_TEST(testTdf112618_textbox_no_bg, 
"tdf112618_textbox_no_bg.doc")
diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx
index f0d93a16044f..43b376062401 100644
--- a/sw/source/filter/ww8/ww8par6.cxx
+++ b/sw/source/filter/ww8/ww8par6.cxx
@@ -4908,13 +4908,8 @@ void SwWW8ImplReader::Read_ParaBackColor(sal_uInt16, 
const sal_uInt8* pData, sho
     if (nLen <= 0)
     {
         // end of attribute
-        if ( m_nInTable )
-            m_xCtrlStck->SetAttr( *m_pPaM->GetPoint(), RES_BACKGROUND );
-        else
-        {
-            m_xCtrlStck->SetAttr( *m_pPaM->GetPoint(), XATTR_FILLSTYLE );
-            m_xCtrlStck->SetAttr( *m_pPaM->GetPoint(), XATTR_FILLCOLOR );
-        }
+        m_xCtrlStck->SetAttr( *m_pPaM->GetPoint(), XATTR_FILLSTYLE );
+        m_xCtrlStck->SetAttr( *m_pPaM->GetPoint(), XATTR_FILLCOLOR );
     }
     else
     {
@@ -4922,13 +4917,12 @@ void SwWW8ImplReader::Read_ParaBackColor(sal_uInt16, 
const sal_uInt8* pData, sho
         if (nLen != 10)
             return;
 
-        if ( m_nInTable )
-            NewAttr( SvxBrushItem(ExtractColour(pData, m_bVer67), 
RES_BACKGROUND) );
+        const Color aColor = ExtractColour(pData, m_bVer67);
+        NewAttr( XFillColorItem(OUString(), aColor) );
+        if ( aColor == COL_AUTO )
+            NewAttr( XFillStyleItem(drawing::FillStyle_NONE) );
         else
-        {
             NewAttr( XFillStyleItem(drawing::FillStyle_SOLID) );
-            NewAttr( XFillColorItem(OUString(), ExtractColour(pData, 
m_bVer67)) );
-        }
     }
 }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to