summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-07-24 12:34:19 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-07-24 13:10:04 +0200
commitdcf94ab56d9e5e9864965f56d27045e67b093fa4 (patch)
treef9bcb47417c70f2d4714362d8c90f1f43a560cee
parent28bc82d8dcc7a65e9c88ff311ac981d556a4896e (diff)
tdf#92911 SwAnnotationWin rendercontext: fix missing comment contents
The problem was that when inserting a post-it comment, the Paint() is triggered for SwEditWin, which then shares a RenderContext with its children, and at the end paints the buffer to the vcl::Window of SwEditWin. When painting this buffer, the contents of SwAnnotationWin was missing, as the parent SwEditWin was not allowed to paint on that area. No explicit clipping is set at the OutputDevice level, but vcl::Window::ImplClipChildren() still calculates a clip region based on the child windows for the underlying SalGraphics, and that prevented SwEditWin to paint its buffer fully. Fix the problem by explicitly disabling this clipping for SwAnnotationWin in its ctor in the rendercontext case. Change-Id: I5eb47c20070057a79297d91242624fc2057e2dfb
-rw-r--r--sw/source/uibase/docvw/AnnotationWin.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/sw/source/uibase/docvw/AnnotationWin.cxx b/sw/source/uibase/docvw/AnnotationWin.cxx
index 9ce682af86dd..efe88768a5a9 100644
--- a/sw/source/uibase/docvw/AnnotationWin.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin.cxx
@@ -66,6 +66,10 @@ SwAnnotationWin::SwAnnotationWin( SwEditWin& rEditWin,
, mpField( static_cast<SwPostItField*>(aField->GetField()))
, mpButtonPopup(0)
{
+ if (SupportsDoubleBuffering())
+ // When double-buffering, allow parents to paint on our area. That's
+ // necessary when parents paint the complete buffer.
+ SetParentClipMode(ParentClipMode::NoClip);
}
SwAnnotationWin::~SwAnnotationWin()