summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--avmedia/source/viewer/mediawindow.cxx5
-rw-r--r--slideshow/source/engine/shapes/viewmediashape.cxx18
-rw-r--r--slideshow/source/engine/shapes/viewmediashape.hxx4
3 files changed, 16 insertions, 11 deletions
diff --git a/avmedia/source/viewer/mediawindow.cxx b/avmedia/source/viewer/mediawindow.cxx
index 3108df45d8c9..6e7934890e8c 100644
--- a/avmedia/source/viewer/mediawindow.cxx
+++ b/avmedia/source/viewer/mediawindow.cxx
@@ -51,7 +51,10 @@ MediaWindow::MediaWindow( vcl::Window* parent, bool bInternalMediaControl ) :
-MediaWindow::~MediaWindow() {}
+MediaWindow::~MediaWindow()
+{
+ mpImpl.disposeAndClear();
+}
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;