[ooo-build-commit] .: vcl/source

Caolán McNamara caolan at kemper.freedesktop.org
Wed Oct 6 08:35:45 PDT 2010


 vcl/source/window/wrkwin.cxx |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

New commits:
commit 0fd7109b1f7152786081cc34e3bdc3baa6cf7c01
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Oct 6 15:11:57 2010 +0100

    #i94007# #i111758# fix RenderBadPicture on multihead setups and cairo

diff --git a/vcl/source/window/wrkwin.cxx b/vcl/source/window/wrkwin.cxx
index a3bcc52..c00e318 100644
--- a/vcl/source/window/wrkwin.cxx
+++ b/vcl/source/window/wrkwin.cxx
@@ -39,6 +39,8 @@
 #include <vcl/window.h>
 #include <vcl/wrkwin.hxx>
 #include <vcl/sysdata.hxx>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/rendering/XCanvas.hpp>
 
 // =======================================================================
 
@@ -188,6 +190,18 @@ void WorkWindow::ShowFullScreenMode( BOOL bFullScreenMode, sal_Int32 nDisplay )
     mbFullScreenMode = bFullScreenMode != 0;
     if ( !mbSysChild )
     {
+        // Dispose of the canvas implementation, which might rely on
+        // screen-specific system data.
+        com::sun::star::uno::Reference< com::sun::star::rendering::XCanvas > xCanvas( mpWindowImpl->mxCanvas );
+        if( xCanvas.is() )
+        {
+            com::sun::star::uno::Reference< com::sun::star::lang::XComponent >
+                xCanvasComponent( xCanvas,
+                                  com::sun::star::uno::UNO_QUERY );
+            if( xCanvasComponent.is() )
+                xCanvasComponent->dispose();
+        }
+
         mpWindowImpl->mpFrameWindow->mpWindowImpl->mbWaitSystemResize = TRUE;
         ImplGetFrame()->ShowFullScreen( bFullScreenMode, nDisplay );
     }


More information about the ooo-build-commit mailing list