ooo-build r13927 - in trunk: . patches/dev300
- From: thorstenb svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r13927 - in trunk: . patches/dev300
- Date: Wed, 17 Sep 2008 21:06:14 +0000 (UTC)
Author: thorstenb
Date: Wed Sep 17 21:06:14 2008
New Revision: 13927
URL: http://svn.gnome.org/viewvc/ooo-build?rev=13927&view=rev
Log:
* patches/dev300/apply:
* patches/dev300/timely-canvas-disposing.diff: fix for crash
during slideshow exit (on multi-head setups), i#94007
Added:
trunk/patches/dev300/timely-canvas-disposing.diff
Modified:
trunk/ChangeLog
trunk/patches/dev300/apply
Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply (original)
+++ trunk/patches/dev300/apply Wed Sep 17 21:06:14 2008
@@ -2642,6 +2642,7 @@
sdext-presenterview-thread-suicide.diff, n#425072, thorsten
vcl-fix-screen-number.diff, n#426521, i#93986, thorsten
vcl-fix-gtk-fullscreen-crash.diff, i#93805, dtardon
+timely-canvas-disposing.diff, i#94007, thorsten
[ ImpressFontSize ]
[ Fixes <= dev300-m30 <= ooo300-m3 ]
Added: trunk/patches/dev300/timely-canvas-disposing.diff
==============================================================================
--- (empty file)
+++ trunk/patches/dev300/timely-canvas-disposing.diff Wed Sep 17 21:06:14 2008
@@ -0,0 +1,64 @@
+ sd/source/ui/slideshow/slideshow.cxx | 9 +++++++--
+ vcl/source/window/wrkwin.cxx | 14 ++++++++++++++
+ 2 files changed, 21 insertions(+), 2 deletions(-)
+
+
+diff --git sd/source/ui/slideshow/slideshow.cxx sd/source/ui/slideshow/slideshow.cxx
+index 7c2b2d7..7b66db0 100644
+--- sd/source/ui/slideshow/slideshow.cxx
++++ sd/source/ui/slideshow/slideshow.cxx
+@@ -701,6 +701,13 @@ void SAL_CALL SlideShow::end() throw(RuntimeException)
+ ViewShellBase* pFullScreenViewShellBase = mpFullScreenViewShellBase;
+ mpFullScreenViewShellBase = 0;
+
++ // dispose before fullscreen window changes screens
++ // (potentially). If this needs to be moved behind
++ // pWorkWindow->StartPresentationMode() again, read issue
++ // pWorkWindow->i94007 & implement the solution outlined
++ // there.
++ xController->dispose();
++
+ if( pFullScreenViewShellBase )
+ {
+ PresentationViewShell* pShell = dynamic_cast<PresentationViewShell*>(pFullScreenViewShellBase->GetMainViewShell().get());
+@@ -715,8 +722,6 @@ void SAL_CALL SlideShow::end() throw(RuntimeException)
+ }
+ }
+
+- xController->dispose();
+-
+ if( pFullScreenViewShellBase )
+ {
+ PresentationViewShell* pShell = NULL;
+diff --git vcl/source/window/wrkwin.cxx vcl/source/window/wrkwin.cxx
+index 09f236c..fb5d901 100644
+--- vcl/source/window/wrkwin.cxx
++++ vcl/source/window/wrkwin.cxx
+@@ -47,6 +47,8 @@
+ #include <vcl/wrkwin.hxx>
+ #include <vcl/opengl.hxx>
+ #include <vcl/sysdata.hxx>
++#include <com/sun/star/lang/XComponent.hpp>
++#include <com/sun/star/rendering/XCanvas.hpp>
+
+ // =======================================================================
+
+@@ -204,6 +206,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 );
+ }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]