diff options
Diffstat (limited to 'slideshow')
-rw-r--r-- | slideshow/source/engine/shapes/viewmediashape.cxx | 18 | ||||
-rw-r--r-- | slideshow/source/engine/shapes/viewmediashape.hxx | 4 |
2 files changed, 12 insertions, 10 deletions
diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx index 6e481d30f656..654f91c3f5cd 100644 --- a/slideshow/source/engine/shapes/viewmediashape.cxx +++ b/slideshow/source/engine/shapes/viewmediashape.cxx @@ -148,8 +148,8 @@ namespace slideshow mxPlayerWindow.clear(); } - mpMediaWindow.reset(); - mpEventHandlerParent.reset(); + mpMediaWindow.disposeAndClear(); + mpEventHandlerParent.disposeAndClear(); // shutdown player if( mxPlayer.is() ) @@ -471,20 +471,23 @@ namespace slideshow #else if( avmedia::IsModel(rMimeType) ) { - mpEventHandlerParent.reset(VclPtr<vcl::Window>::Create(pWindow, WB_NOBORDER|WB_NODIALOGCONTROL)); + mpMediaWindow.disposeAndClear(); + mpEventHandlerParent.disposeAndClear(); + mpEventHandlerParent = VclPtr<vcl::Window>::Create(pWindow, WB_NOBORDER|WB_NODIALOGCONTROL); mpEventHandlerParent->SetPosSizePixel( Point( aAWTRect.X, aAWTRect.Y ), Size( aAWTRect.Width, aAWTRect.Height ) ); mpEventHandlerParent->EnablePaint(false); mpEventHandlerParent->Show(); SystemWindowData aWinData = OpenGLContext::generateWinData(mpEventHandlerParent.get(), false); - mpMediaWindow.reset(VclPtr<SystemChildWindow>::Create(mpEventHandlerParent.get(), 0, &aWinData)); + mpMediaWindow = VclPtr<SystemChildWindow>::Create(mpEventHandlerParent.get(), 0, &aWinData); mpMediaWindow->SetPosSizePixel( Point( 0, 0 ), Size( aAWTRect.Width, aAWTRect.Height ) ); } else #endif { - mpMediaWindow.reset( VclPtr<SystemChildWindow>::Create( pWindow, WB_CLIPCHILDREN ) ); + mpMediaWindow.disposeAndClear(); + mpMediaWindow = VclPtr<SystemChildWindow>::Create( pWindow, WB_CLIPCHILDREN ); mpMediaWindow->SetPosSizePixel( Point( aAWTRect.X, aAWTRect.Y ), Size( aAWTRect.Width, aAWTRect.Height ) ); } @@ -503,7 +506,6 @@ namespace slideshow aAWTRect.X = aAWTRect.Y = 0; aArgs[ 1 ] = uno::makeAny( aAWTRect ); - aArgs[ 2 ] = uno::makeAny( reinterpret_cast< sal_IntPtr >( mpMediaWindow.get() ) ); mxPlayerWindow.set( mxPlayer->createPlayerWindow( aArgs ) ); @@ -519,8 +521,8 @@ namespace slideshow { //if there was no playerwindow, then clear the mpMediaWindow too //so that we can draw a placeholder instead in that space - mpMediaWindow.reset(); - mpEventHandlerParent.reset(); + mpMediaWindow.disposeAndClear(); + mpEventHandlerParent.disposeAndClear(); } } } diff --git a/slideshow/source/engine/shapes/viewmediashape.hxx b/slideshow/source/engine/shapes/viewmediashape.hxx index 13eba7fce7bb..fe0462cd7e42 100644 --- a/slideshow/source/engine/shapes/viewmediashape.hxx +++ b/slideshow/source/engine/shapes/viewmediashape.hxx @@ -148,8 +148,8 @@ namespace slideshow const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rVCLDeviceParams, const OUString& rMimeType ); ViewLayerSharedPtr mpViewLayer; - VclPtr< SystemChildWindow > mpMediaWindow; - VclPtr< vcl::Window > mpEventHandlerParent; + VclPtr< SystemChildWindow > mpMediaWindow; + VclPtr< vcl::Window > mpEventHandlerParent; mutable ::com::sun::star::awt::Point maWindowOffset; mutable ::basegfx::B2DRectangle maBounds; |