summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-07-30 09:11:35 +0200
committerCaolán McNamara <caolanm@redhat.com>2015-08-12 12:53:19 +0000
commit545a0c19494a7d55e514831b9a4d81197ab01c57 (patch)
tree9fc232d2d9e6d6bebfd303f1fa07dadeba988a30
parenta81d95bbee794757176e811e2e37fc8ce7291450 (diff)
tdf#89720 sw: do not create text range overlay for reply annotations
Regression from commit 0761f81643a6890457e9ef7d913ab5c88c2593a4 (123792: complete annotations on text ranges feature, 2013-12-19), the problem was that in case a comment had a reply, then both comments produced its range overlay, and this repeated semi-transparent overlay resulted in dark color. Go back to the old behavior of just painting the overlay for the non-reply comment; for real, partly overlapping comments showing the exact boundaries of the overlapping overlays still makes sense. (cherry picked from commit 780dd8c1cf5302ca503cf7b55357dace4d69beb9) Conflicts: sw/qa/extras/uiwriter/uiwriter.cxx Change-Id: Ic2673a1a41146ff547262ba681b34a63f41aa8ff Reviewed-on: https://gerrit.libreoffice.org/17669 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sw/qa/extras/uiwriter/data/tdf89720.odtbin0 -> 11283 bytes
-rw-r--r--sw/qa/extras/uiwriter/uiwriter.cxx21
-rw-r--r--sw/source/uibase/docvw/SidebarWin.cxx3
3 files changed, 23 insertions, 1 deletions
diff --git a/sw/qa/extras/uiwriter/data/tdf89720.odt b/sw/qa/extras/uiwriter/data/tdf89720.odt
new file mode 100644
index 000000000000..0b86ec51a812
--- /dev/null
+++ b/sw/qa/extras/uiwriter/data/tdf89720.odt
Binary files differ
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 1fc636cb761d..6b8b053588d8 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -33,6 +33,9 @@
#include <editeng/acorrcfg.hxx>
#include <unotools/streamwrap.hxx>
#include <test/mtfxmldump.hxx>
+#include <postithelper.hxx>
+#include <PostItMgr.hxx>
+#include <SidebarWin.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdview.hxx>
@@ -98,6 +101,7 @@ public:
void testTdf90883TableBoxGetCoordinates();
void testDde();
void testTdf89954();
+ void testTdf89720();
CPPUNIT_TEST_SUITE(SwUiWriterTest);
CPPUNIT_TEST(testReplaceForward);
@@ -137,6 +141,7 @@ public:
CPPUNIT_TEST(testTdf90883TableBoxGetCoordinates);
CPPUNIT_TEST(testDde);
CPPUNIT_TEST(testTdf89954);
+ CPPUNIT_TEST(testTdf89720);
CPPUNIT_TEST_SUITE_END();
@@ -1044,6 +1049,22 @@ void SwUiWriterTest::testTdf89954()
CPPUNIT_ASSERT_EQUAL(aExpected, aNodeIndex.GetNode().GetTextNode()->GetText());
}
+void SwUiWriterTest::testTdf89720()
+{
+#ifndef MACOSX
+ SwDoc* pDoc = createDoc("tdf89720.odt");
+ SwView* pView = pDoc->GetDocShell()->GetView();
+ SwPostItMgr* pPostItMgr = pView->GetPostItMgr();
+ for (SwSidebarItem* pItem : *pPostItMgr)
+ {
+ if (pItem->pPostIt->IsFollow())
+ // This was non-0: reply comments had a text range overlay,
+ // resulting in unexpected dark color.
+ CPPUNIT_ASSERT(!pItem->pPostIt->TextRange());
+ }
+#endif
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(SwUiWriterTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/uibase/docvw/SidebarWin.cxx b/sw/source/uibase/docvw/SidebarWin.cxx
index 6b8149650964..9825839ecf33 100644
--- a/sw/source/uibase/docvw/SidebarWin.cxx
+++ b/sw/source/uibase/docvw/SidebarWin.cxx
@@ -703,8 +703,9 @@ void SwSidebarWin::SetPosAndSize()
mpTextRangeOverlay->HideSolidBorder();
}
}
- else
+ else if (!IsFollow())
{
+ // This window is not a reply, then draw its range overlay.
mpTextRangeOverlay =
sw::overlay::OverlayRanges::CreateOverlayRange(
DocView(),