diff options
author | Justin Luth <justin_luth@sil.org> | 2017-07-06 14:54:27 -0400 |
---|---|---|
committer | Justin Luth <justin_luth@sil.org> | 2017-07-15 03:39:26 +0200 |
commit | cc438f60d6ad0855f754dd32da9c9a80c7cabf92 (patch) | |
tree | 13c44745982a0d262096000a09e889d4c3c39c8b | |
parent | 403ddd6cb1c0d6a0e0db105e68f58fe40057cb42 (diff) |
tdf#103978 textboxhelper: syncProperty OPAQUE (wrap in background)
Although the containing shape is in the background (and thus the
normal paragraph text is still visible), the shape's text
was still painting over top of the normal paragraph text because
the textbox was set as opaque and not transparent.
Setting the textbox to sync the opacity value of its containing shape.
Change-Id: I02477e2fa7def1f13590afcaa7c6564dd79d6406
Reviewed-on: https://gerrit.libreoffice.org/39672
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Justin Luth <justin_luth@sil.org>
-rw-r--r-- | sw/qa/extras/uiwriter/data/tdf103978_backgroundTextShape.docx | bin | 0 -> 26058 bytes | |||
-rw-r--r-- | sw/qa/extras/uiwriter/uiwriter.cxx | 21 | ||||
-rw-r--r-- | sw/source/core/doc/textboxhelper.cxx | 3 |
3 files changed, 24 insertions, 0 deletions
diff --git a/sw/qa/extras/uiwriter/data/tdf103978_backgroundTextShape.docx b/sw/qa/extras/uiwriter/data/tdf103978_backgroundTextShape.docx Binary files differnew file mode 100644 index 000000000000..b99b65e47630 --- /dev/null +++ b/sw/qa/extras/uiwriter/data/tdf103978_backgroundTextShape.docx diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 31a1f9947f23..779cc46a1293 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -214,6 +214,7 @@ public: void testTdf77014(); #endif void testTdf92648(); + void testTdf103978_backgroundTextShape(); void testTdf96515(); void testTdf96943(); void testTdf96536(); @@ -360,6 +361,7 @@ public: CPPUNIT_TEST(testTdf77014); #endif CPPUNIT_TEST(testTdf92648); + CPPUNIT_TEST(testTdf103978_backgroundTextShape); CPPUNIT_TEST(testTdf96515); CPPUNIT_TEST(testTdf96943); CPPUNIT_TEST(testTdf96536); @@ -4009,6 +4011,25 @@ void SwUiWriterTest::testTdf92648() CPPUNIT_ASSERT_EQUAL(sal_Int32(5), nCount); } +void SwUiWriterTest::testTdf103978_backgroundTextShape() +{ + SwDoc* pDoc = createDoc("tdf103978_backgroundTextShape.docx"); + + // there is only one shape. It has an attached textbox + bool bShapeIsOpaque = getProperty<bool>(getShape(1), "Opaque"); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Shape is in the foreground", false, bShapeIsOpaque ); + sal_Int32 nCount = 0; + for (const SwFrameFormat* pFormat : *pDoc->GetSpzFrameFormats()) + { + if (!SwTextBoxHelper::isTextBox(pFormat, RES_FLYFRMFMT)) + continue; + CPPUNIT_ASSERT_EQUAL_MESSAGE("Textbox syncs the shape's transparency", bShapeIsOpaque, pFormat->GetOpaque().GetValue() ); + ++nCount; + } + //ensure that we don't skip the for loop without an error + CPPUNIT_ASSERT_EQUAL_MESSAGE("Number of TextBoxes", sal_Int32(1), nCount); +} + void SwUiWriterTest::testTdf96515() { // Enable hide whitespace mode. diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx index 9a88ba9dea4e..39ac1fff78f1 100644 --- a/sw/source/core/doc/textboxhelper.cxx +++ b/sw/source/core/doc/textboxhelper.cxx @@ -514,6 +514,9 @@ void SwTextBoxHelper::syncProperty(SwFrameFormat* pShape, sal_uInt16 nWID, sal_u break; } break; + case RES_OPAQUE: + aPropertyName = UNO_NAME_OPAQUE; + break; } if (!aPropertyName.isEmpty()) |