Blob Blame History Raw
From b12be8bcddf71b969c97580bd631a6a851a2ad43 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 28 Sep 2017 10:28:44 +0100
Subject: [PATCH] Resolves: tdf#42873 videos in presenter console misplaced

Change-Id: Ib7559246f6f3173acea72268db0489b79df38ae3
---
 slideshow/source/engine/shapes/viewmediashape.cxx | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx
index dcc14b9..99bc019 100644
--- a/slideshow/source/engine/shapes/viewmediashape.cxx
+++ b/slideshow/source/engine/shapes/viewmediashape.cxx
@@ -50,15 +50,16 @@
 #include <vcl/opengl/OpenGLContext.hxx>
 #endif
 
-#include <com/sun/star/media/XManager.hpp>
-#include <com/sun/star/media/XPlayer.hpp>
-#include <com/sun/star/media/XPlayerWindow.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
 #include <com/sun/star/lang/XMultiComponentFactory.hpp>
 #include <com/sun/star/lang/NoSupportException.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/media/XManager.hpp>
+#include <com/sun/star/media/XPlayer.hpp>
+#include <com/sun/star/media/XPlayerWindow.hpp>
+#include <com/sun/star/presentation/XSlideShowView.hpp>
 #include <com/sun/star/rendering/XCanvas.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
 
 #include "viewmediashape.hxx"
 #include "mediashape.hxx"
@@ -473,6 +474,13 @@ namespace slideshow
                             {
                                 mpMediaWindow.disposeAndClear();
                                 mpMediaWindow = VclPtr<SystemChildWindow>::Create( pWindow, WB_CLIPCHILDREN );
+                                UnoViewSharedPtr xUnoView(std::dynamic_pointer_cast<UnoView>(mpViewLayer));
+                                if (xUnoView)
+                                {
+                                    awt::Rectangle aCanvasArea = xUnoView->getUnoView()->getCanvasArea();
+                                    aAWTRect.X += aCanvasArea.X;
+                                    aAWTRect.Y += aCanvasArea.Y;
+                                }
                                 mpMediaWindow->SetPosSizePixel( Point( aAWTRect.X, aAWTRect.Y ),
                                                            Size( aAWTRect.Width, aAWTRect.Height ) );
                             }
-- 
2.9.5