avmedia/source/gstreamer/gstplayer.cxx | 2 +- include/vcl/sysdata.hxx | 17 +++++++++++++++-- toolkit/source/awt/vclxsystemdependentwindow.cxx | 2 +- toolkit/source/awt/vclxtopwindow.cxx | 2 +- vcl/qt5/Qt5FilePicker.cxx | 2 +- vcl/qt5/Qt5Frame.cxx | 2 +- vcl/qt5/Qt5Object.cxx | 2 +- vcl/source/opengl/x11/context.cxx | 4 ++-- vcl/source/window/syschild.cxx | 2 +- vcl/unx/generic/app/i18n_ic.cxx | 4 ++-- vcl/unx/generic/app/saldisp.cxx | 2 +- vcl/unx/generic/gdi/cairo_xlib_cairo.cxx | 2 +- vcl/unx/generic/gdi/salgdi2.cxx | 2 +- vcl/unx/generic/window/salframe.cxx | 2 +- vcl/unx/generic/window/salobj.cxx | 10 +++++----- vcl/unx/gtk3/gtk3gtkdata.cxx | 2 +- vcl/unx/gtk3/gtk3gtkframe.cxx | 2 +- vcl/unx/gtk3/gtk3gtkobject.cxx | 2 +- 18 files changed, 38 insertions(+), 25 deletions(-)
New commits: commit 0069bce585ae60eafaaf0f52928941c16eab4fae Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Jan 25 20:59:58 2021 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Jan 26 13:27:17 2021 +0100 use an accessor for SystemEnvData::aWindow with an eye to making it on-demand Change-Id: If6cefd68a336dc6afe23591c857bd71034215b54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109929 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx index 4efbc6497b09..5d8d625ddf08 100644 --- a/avmedia/source/gstreamer/gstplayer.cxx +++ b/avmedia/source/gstreamer/gstplayer.cxx @@ -880,7 +880,7 @@ uno::Reference< ::media::XPlayerWindow > SAL_CALL Player::createPlayerWindow( co g_object_set(G_OBJECT(mpPlaybin), "video-sink", pVideosink, nullptr); g_object_set(G_OBJECT(mpPlaybin), "force-aspect-ratio", FALSE, nullptr); - mnWindowID = pEnvData->aWindow; + mnWindowID = pEnvData->GetWindowHandle(); mpDisplay = pEnvData->pDisplay; SAL_INFO( "avmedia.gstreamer", AVVERSION "set window id to " << static_cast<int>(mnWindowID) << " XOverlay " << mpXOverlay); gst_element_set_state( mpPlaybin, GST_STATE_PAUSED ); diff --git a/include/vcl/sysdata.hxx b/include/vcl/sysdata.hxx index 3abf92b55640..ed93b524d699 100644 --- a/include/vcl/sysdata.hxx +++ b/include/vcl/sysdata.hxx @@ -61,7 +61,6 @@ struct SystemEnvData enum class Platform { Wayland, Xcb }; void* pDisplay; // the relevant display connection - sal_uIntPtr aWindow; // the window of the object void* pSalFrame; // contains a salframe, if object has one void* pWidget; // the corresponding widget void* pVisual; // the visual in use @@ -71,6 +70,20 @@ struct SystemEnvData sal_IntPtr aShellWindow; // the window of the frame's shell Toolkit toolkit; // the toolkit in use Platform platform; // the windowing system in use +private: + sal_uIntPtr aWindow; // the window of the object +public: + + void SetWindowHandle(sal_uIntPtr nWindow) + { + aWindow = nWindow; + } + + sal_uIntPtr GetWindowHandle() const + { + return aWindow; + } + #endif SystemEnvData() @@ -83,7 +96,6 @@ struct SystemEnvData #elif defined( IOS ) #elif defined( UNX ) : pDisplay(nullptr) - , aWindow(0) , pSalFrame(nullptr) , pWidget(nullptr) , pVisual(nullptr) @@ -91,6 +103,7 @@ struct SystemEnvData , aShellWindow(0) , toolkit(Toolkit()) , platform(Platform()) + , aWindow(0) #endif { } diff --git a/toolkit/source/awt/vclxsystemdependentwindow.cxx b/toolkit/source/awt/vclxsystemdependentwindow.cxx index 2c53edf19b27..371945627573 100644 --- a/toolkit/source/awt/vclxsystemdependentwindow.cxx +++ b/toolkit/source/awt/vclxsystemdependentwindow.cxx @@ -102,7 +102,7 @@ css::uno::Any VCLXSystemDependentWindow::getWindowHandle( const css::uno::Sequen { css::awt::SystemDependentXWindow aSD; aSD.DisplayPointer = sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(pSysData->pDisplay)); - aSD.WindowHandle = pSysData->aWindow; + aSD.WindowHandle = pSysData->GetWindowHandle(); aRet <<= aSD; } #endif diff --git a/toolkit/source/awt/vclxtopwindow.cxx b/toolkit/source/awt/vclxtopwindow.cxx index 40aab75a480a..b0d070fb85a8 100644 --- a/toolkit/source/awt/vclxtopwindow.cxx +++ b/toolkit/source/awt/vclxtopwindow.cxx @@ -79,7 +79,7 @@ css::uno::Any VCLXTopWindow::getWindowHandle( const css::uno::Sequence< sal_Int8 { css::awt::SystemDependentXWindow aSD; aSD.DisplayPointer = sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(pSysData->pDisplay)); - aSD.WindowHandle = pSysData->aWindow; + aSD.WindowHandle = pSysData->GetWindowHandle(); aRet <<= aSD; } #endif diff --git a/vcl/qt5/Qt5FilePicker.cxx b/vcl/qt5/Qt5FilePicker.cxx index 9dea45ed4444..a0d89f2fca1b 100644 --- a/vcl/qt5/Qt5FilePicker.cxx +++ b/vcl/qt5/Qt5FilePicker.cxx @@ -844,7 +844,7 @@ void SAL_CALL Qt5FilePicker::initialize(const uno::Sequence<uno::Any>& args) const auto it = std::find_if(pFrames.begin(), pFrames.end(), [&aWindowHandle](auto pFrame) -> bool { const SystemEnvData* pData = pFrame->GetSystemData(); - return pData && tools::Long(pData->aWindow) == aWindowHandle; + return pData && tools::Long(pData->GetWindowHandle()) == aWindowHandle; }); if (it != pFrames.end()) m_pParentWidget = static_cast<Qt5Frame*>(*it)->asChild(); diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx index beff0a472786..6ea28517dbd8 100644 --- a/vcl/qt5/Qt5Frame.cxx +++ b/vcl/qt5/Qt5Frame.cxx @@ -185,7 +185,7 @@ Qt5Frame::Qt5Frame(Qt5Frame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo) // s. tdf#122293/QTBUG-75766 const bool bWayland = QGuiApplication::platformName() == "wayland"; if (!bWayland) - m_aSystemData.aWindow = m_pQWidget->winId(); + m_aSystemData.SetWindowHandle(m_pQWidget->winId()); else { // TODO implement as needed for Wayland, diff --git a/vcl/qt5/Qt5Object.cxx b/vcl/qt5/Qt5Object.cxx index 29bcb980f7c7..631321681daa 100644 --- a/vcl/qt5/Qt5Object.cxx +++ b/vcl/qt5/Qt5Object.cxx @@ -51,7 +51,7 @@ Qt5Object::Qt5Object(Qt5Frame* pParent, bool bShow) if (!bWayland) { m_aSystemData.platform = SystemEnvData::Platform::Xcb; - m_aSystemData.aWindow = m_pQWindow->winId(); // ID of the embedded window + m_aSystemData.SetWindowHandle(m_pQWindow->winId()); // ID of the embedded window } else { diff --git a/vcl/source/opengl/x11/context.cxx b/vcl/source/opengl/x11/context.cxx index e0ce3289f3dc..6371d66b4e6e 100644 --- a/vcl/source/opengl/x11/context.cxx +++ b/vcl/source/opengl/x11/context.cxx @@ -227,7 +227,7 @@ SystemWindowData X11OpenGLContext::generateWinData(vcl::Window* pParent, bool /* const SystemEnvData* sysData(pParent->GetSystemData()); Display *dpy = static_cast<Display*>(sysData->pDisplay); - Window win = sysData->aWindow; + Window win = sysData->GetWindowHandle(); if( dpy == nullptr || !glXQueryExtension( dpy, nullptr, nullptr ) ) return aWinData; @@ -472,7 +472,7 @@ void X11OpenGLContext::initWindow() InitChildWindow(m_pChildWindow.get()); m_aGLWin.dpy = static_cast<Display*>(pChildSysData->pDisplay); - m_aGLWin.win = pChildSysData->aWindow; + m_aGLWin.win = pChildSysData->GetWindowHandle(); m_aGLWin.screen = pChildSysData->nScreen; Visual* pVisual = static_cast<Visual*>(pChildSysData->pVisual); diff --git a/vcl/source/window/syschild.cxx b/vcl/source/window/syschild.cxx index 81cbc43abd11..967b3a29c91b 100644 --- a/vcl/source/window/syschild.cxx +++ b/vcl/source/window/syschild.cxx @@ -173,7 +173,7 @@ sal_IntPtr SystemChildWindow::GetParentWindowHandle() const #elif defined IOS // Nothing #elif defined UNX - nRet = GetSystemData()->aWindow; + nRet = GetSystemData()->GetWindowHandle(); #endif return nRet; diff --git a/vcl/unx/generic/app/i18n_ic.cxx b/vcl/unx/generic/app/i18n_ic.cxx index 8f1a814233ea..ce4faa918d8c 100644 --- a/vcl/unx/generic/app/i18n_ic.cxx +++ b/vcl/unx/generic/app/i18n_ic.cxx @@ -164,7 +164,7 @@ SalI18N_InputContext::SalI18N_InputContext ( SalFrame *pFrame ) : { const SystemEnvData* pEnv = pFrame->GetSystemData(); ::Window aClientWindow = pEnv->aShellWindow; - ::Window aFocusWindow = pEnv->aWindow; + ::Window aFocusWindow = pEnv->GetWindowHandle(); // for status callbacks and commit string callbacks #define PREEDIT_BUFSZ 16 @@ -548,7 +548,7 @@ SalI18N_InputContext::SetICFocus( SalFrame* pFocusFrame ) const SystemEnvData* pEnv = pFocusFrame->GetSystemData(); ::Window aClientWindow = pEnv->aShellWindow; - ::Window aFocusWindow = pEnv->aWindow; + ::Window aFocusWindow = pEnv->GetWindowHandle(); XSetICValues( maContext, XNFocusWindow, aFocusWindow, diff --git a/vcl/unx/generic/app/saldisp.cxx b/vcl/unx/generic/app/saldisp.cxx index 26624925dfe8..dc843f34ab67 100644 --- a/vcl/unx/generic/app/saldisp.cxx +++ b/vcl/unx/generic/app/saldisp.cxx @@ -1849,7 +1849,7 @@ int SalDisplay::CaptureMouse( SalFrame *pCapture ) if( !pEnv || !*pEnv ) { int ret = XGrabPointer( GetDisplay(), - static_cast<::Window>(pEnvData->aWindow), + static_cast<::Window>(pEnvData->GetWindowHandle()), False, PointerMotionMask| ButtonPressMask|ButtonReleaseMask, GrabModeAsync, diff --git a/vcl/unx/generic/gdi/cairo_xlib_cairo.cxx b/vcl/unx/generic/gdi/cairo_xlib_cairo.cxx index aba06672eb3b..762564fbdab0 100644 --- a/vcl/unx/generic/gdi/cairo_xlib_cairo.cxx +++ b/vcl/unx/generic/gdi/cairo_xlib_cairo.cxx @@ -70,7 +70,7 @@ namespace cairo X11SysData::X11SysData( const SystemEnvData& pSysDat ) : pDisplay(pSysDat.pDisplay), - hDrawable(pSysDat.aWindow), + hDrawable(pSysDat.GetWindowHandle()), pVisual(pSysDat.pVisual), nScreen(pSysDat.nScreen), pRenderFormat(nullptr) diff --git a/vcl/unx/generic/gdi/salgdi2.cxx b/vcl/unx/generic/gdi/salgdi2.cxx index fca6051dc3cd..03ce5331bc58 100644 --- a/vcl/unx/generic/gdi/salgdi2.cxx +++ b/vcl/unx/generic/gdi/salgdi2.cxx @@ -51,7 +51,7 @@ void X11SalGraphics::YieldGraphicsExpose() for (auto pSalFrame : vcl_sal::getSalDisplay(GetGenericUnixSalData())->getFrames() ) { const SystemEnvData* pEnvData = pSalFrame->GetSystemData(); - if( Drawable(pEnvData->aWindow) == aWindow ) + if( Drawable(pEnvData->GetWindowHandle()) == aWindow ) { pFrame = pSalFrame; break; diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index 3b8fde178276..8c9959dfaa4a 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -947,7 +947,7 @@ const SystemEnvData* X11SalFrame::GetSystemData() const { X11SalFrame *pFrame = const_cast<X11SalFrame*>(this); pFrame->maSystemChildData.pDisplay = GetXDisplay(); - pFrame->maSystemChildData.aWindow = pFrame->GetWindow(); + pFrame->maSystemChildData.SetWindowHandle(pFrame->GetWindow()); pFrame->maSystemChildData.pSalFrame = pFrame; pFrame->maSystemChildData.pWidget = nullptr; pFrame->maSystemChildData.pVisual = GetDisplay()->GetVisual( m_nXScreen ).GetVisual(); diff --git a/vcl/unx/generic/window/salobj.cxx b/vcl/unx/generic/window/salobj.cxx index 04368e7eea4b..a39c041a95ae 100644 --- a/vcl/unx/generic/window/salobj.cxx +++ b/vcl/unx/generic/window/salobj.cxx @@ -62,7 +62,7 @@ X11SalObject* X11SalObject::CreateObject( SalFrame* pParent, SystemWindowData* p SalDisplay* pSalDisp = vcl_sal::getSalDisplay(GetGenericUnixSalData()); const SystemEnvData* pEnv = pParent->GetSystemData(); Display* pDisp = pSalDisp->GetDisplay(); - ::Window aObjectParent = static_cast<::Window>(pEnv->aWindow); + ::Window aObjectParent = static_cast<::Window>(pEnv->GetWindowHandle()); pObject->maParentWin = aObjectParent; // find out on which screen that window is @@ -157,7 +157,7 @@ X11SalObject* X11SalObject::CreateObject( SalFrame* pParent, SystemWindowData* p } pObjData->pDisplay = pDisp; - pObjData->aWindow = pObject->maSecondary; + pObjData->SetWindowHandle(pObject->maSecondary); pObjData->pWidget = nullptr; pObjData->pVisual = pVisual; @@ -224,7 +224,7 @@ X11SalObject::X11SalObject() , mbVisible(false) { maSystemChildData.pDisplay = vcl_sal::getSalDisplay(GetGenericUnixSalData())->GetDisplay(); - maSystemChildData.aWindow = None; + maSystemChildData.SetWindowHandle(None); maSystemChildData.pSalFrame = nullptr; maSystemChildData.pWidget = nullptr; maSystemChildData.pVisual = nullptr; @@ -332,7 +332,7 @@ X11SalObject::SetPosSize( tools::Long nX, tools::Long nY, tools::Long nWidth, to void X11SalObject::Show( bool bVisible ) { - if ( ! maSystemChildData.aWindow ) + if (!maSystemChildData.GetWindowHandle()) return; if ( bVisible ) { @@ -353,7 +353,7 @@ void X11SalObject::GrabFocus() { if( mbVisible ) XSetInputFocus( static_cast<Display*>(maSystemChildData.pDisplay), - maSystemChildData.aWindow, + maSystemChildData.GetWindowHandle(), RevertToNone, CurrentTime ); } diff --git a/vcl/unx/gtk3/gtk3gtkdata.cxx b/vcl/unx/gtk3/gtk3gtkdata.cxx index cef4b3e0d30c..952fb503306d 100644 --- a/vcl/unx/gtk3/gtk3gtkdata.cxx +++ b/vcl/unx/gtk3/gtk3gtkdata.cxx @@ -782,7 +782,7 @@ GtkWidget* GtkSalDisplay::findGtkWidgetForNativeHandle(sal_uIntPtr hWindow) cons for (auto pSalFrame : m_aFrames ) { const SystemEnvData* pEnvData = pSalFrame->GetSystemData(); - if (pEnvData->aWindow == hWindow) + if (pEnvData->GetWindowHandle() == hWindow) return GTK_WIDGET(pEnvData->pWidget); } return nullptr; diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index bbbdf736fe92..2fac782ac349 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -950,7 +950,7 @@ void GtkSalFrame::InitCommon() gtk_widget_realize( m_pWindow ); //system data - m_aSystemData.aWindow = GetNativeWindowHandle(m_pWindow); + m_aSystemData.SetWindowHandle(GetNativeWindowHandle(m_pWindow)); m_aSystemData.aShellWindow = reinterpret_cast<sal_IntPtr>(this); m_aSystemData.pSalFrame = this; m_aSystemData.pWidget = m_pWindow; diff --git a/vcl/unx/gtk3/gtk3gtkobject.cxx b/vcl/unx/gtk3/gtk3gtkobject.cxx index 173e1b02f356..afff5fa2291e 100644 --- a/vcl/unx/gtk3/gtk3gtkobject.cxx +++ b/vcl/unx/gtk3/gtk3gtkobject.cxx @@ -65,7 +65,7 @@ void GtkSalObjectBase::Init() gtk_widget_realize( m_pSocket ); // system data - m_aSystemData.aWindow = m_pParent->GetNativeWindowHandle(m_pSocket); + m_aSystemData.SetWindowHandle(m_pParent->GetNativeWindowHandle(m_pSocket)); m_aSystemData.aShellWindow = reinterpret_cast<sal_IntPtr>(this); m_aSystemData.pSalFrame = nullptr; m_aSystemData.pWidget = m_pSocket; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits