summaryrefslogtreecommitdiff
path: root/avmedia
diff options
context:
space:
mode:
Diffstat (limited to 'avmedia')
-rw-r--r--avmedia/source/gstreamer/gstplayer.cxx24
1 files changed, 16 insertions, 8 deletions
diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx
index 78928cddcc45..6303bc53bb68 100644
--- a/avmedia/source/gstreamer/gstplayer.cxx
+++ b/avmedia/source/gstreamer/gstplayer.cxx
@@ -926,19 +926,27 @@ uno::Reference< ::media::XPlayerWindow > SAL_CALL Player::createPlayerWindow( co
rArguments[ 2 ] >>= pIntPtr;
SystemChildWindow *pParentWindow = reinterpret_cast< SystemChildWindow* >( pIntPtr );
- if (pParentWindow)
- {
- Point aPoint = pParentWindow->GetPosPixel();
- maArea.X = aPoint.getX();
- maArea.Y = aPoint.getY();
- }
-
const SystemEnvData* pEnvData = pParentWindow ? pParentWindow->GetSystemData() : nullptr;
OSL_ASSERT(pEnvData);
if (pEnvData)
{
+ OUString aToolkit = OUString::createFromAscii(pEnvData->pToolkit);
+
+ // tdf#124027: the position of embedded window is identical w/ the position
+ // of media object in all other vclplugs (gtk, kde5, gen), in gtk3 w/o gtksink it
+ // needs to be translated
+ if (aToolkit == "gtk3")
+ {
+ if (pParentWindow)
+ {
+ Point aPoint = pParentWindow->GetPosPixel();
+ maArea.X = aPoint.getX();
+ maArea.Y = aPoint.getY();
+ }
+ }
+
#if defined(ENABLE_GTKSINK)
- GstElement *pVideosink = g_strcmp0(pEnvData->pToolkit, "gtk3") == 0 ?
+ GstElement *pVideosink = (aToolkit == "gtk3") ?
gst_element_factory_make("gtksink", "gtksink") : nullptr;
if (pVideosink)
{