[Libreoffice-commits] core.git: sw/source

Miklos Vajna vmiklos at collabora.co.uk
Fri Jul 24 04:12:13 PDT 2015


 sw/source/uibase/docvw/AnnotationWin.cxx |    4 ++++
 1 file changed, 4 insertions(+)

New commits:
commit dcf94ab56d9e5e9864965f56d27045e67b093fa4
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Jul 24 12:34:19 2015 +0200

    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

diff --git a/sw/source/uibase/docvw/AnnotationWin.cxx b/sw/source/uibase/docvw/AnnotationWin.cxx
index 9ce682a..efe8876 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()


More information about the Libreoffice-commits mailing list