vcl/Library_vcl.mk | 1 + vcl/inc/unx/salframe.h | 5 ++++- vcl/source/opengl/OpenGLContext.cxx | 2 +- vcl/unx/generic/gdi/salgdi.cxx | 10 ++++++---- vcl/unx/generic/window/salframe.cxx | 5 +++++ 5 files changed, 17 insertions(+), 6 deletions(-)
New commits: commit 3b497a3080ea090978824321f99779a10b8df6e9 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Mon Oct 27 20:38:46 2014 +0100 better way to access the X11 window Now any plugin that implements this class will automatically work. Change-Id: I7b00ef3e76dfd24e497a31fe4d3c468eb5b4b654 diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index c680634..8580701 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -554,6 +554,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/unx/generic/plugadapt/salplug \ vcl/unx/generic/printer/jobdata \ vcl/unx/generic/printer/ppdparser \ + vcl/unx/generic/gdi/x11windowprovider \ $(if $(filter TRUE,$(ENABLE_CUPS)),\ vcl/unx/generic/printer/cupsmgr \ vcl/unx/generic/printer/printerinfomanager \ diff --git a/vcl/inc/unx/salframe.h b/vcl/inc/unx/salframe.h index 637ef67..9b737f9 100644 --- a/vcl/inc/unx/salframe.h +++ b/vcl/inc/unx/salframe.h @@ -26,6 +26,7 @@ #include <unx/salunx.h> #include <unx/saltype.h> #include <unx/saldisp.hxx> +#include <unx/x11windowprovider.hxx> #include <salframe.hxx> #include <salwtype.hxx> #include <salinst.hxx> @@ -48,7 +49,7 @@ namespace vcl_sal { class WMAdaptor; class NetWMAdaptor; class GnomeWMAdaptor; } #define SHOWSTATE_NORMAL 1 #define SHOWSTATE_HIDDEN 2 -class VCLPLUG_GEN_PUBLIC X11SalFrame : public SalFrame +class VCLPLUG_GEN_PUBLIC X11SalFrame : public SalFrame, public X11WindowProvider { friend class vcl_sal::WMAdaptor; friend class vcl_sal::NetWMAdaptor; @@ -270,6 +271,8 @@ public: // done setting up the clipregion virtual void EndSetClipRegion() SAL_OVERRIDE; + virtual Window GetX11Window() SAL_OVERRIDE; + static Bool checkKeyReleaseForRepeat( Display*, XEvent*, XPointer pX11SalFrame ); /// @internal diff --git a/vcl/unx/generic/gdi/salgdi.cxx b/vcl/unx/generic/gdi/salgdi.cxx index d51d24f..9b23a64 100644 --- a/vcl/unx/generic/gdi/salgdi.cxx +++ b/vcl/unx/generic/gdi/salgdi.cxx @@ -51,6 +51,7 @@ #include <unx/x11/xlimits.hxx> #include "salgdiimpl.hxx" +#include "unx/x11windowprovider.hxx" #include "gdiimpl.hxx" #include "openglgdiimpl.hxx" @@ -154,14 +155,11 @@ void X11SalGraphics::SetDrawable( Drawable aDrawable, SalX11Screen nXScreen ) else { OpenGLSalGraphicsImpl* pOpenGLImpl = dynamic_cast<OpenGLSalGraphicsImpl*>(mpImpl.get()); - if (pOpenGLImpl && m_pFrame) + if (pOpenGLImpl && m_pFrame && dynamic_cast<X11WindowProvider*>(m_pFrame)) { - if( dynamic_cast<X11SalFrame*>(m_pFrame)) - { - Window aWin = dynamic_cast<X11SalFrame*>(m_pFrame)->GetDrawable(); + Window aWin = dynamic_cast<X12WindowProvider*>(m_pFrame)->GetX11Window(); pOpenGLImpl->GetOpenGLContext().init(GetXDisplay(), aWin, m_nXScreen.getXScreen()); - } } } nTextPixel_ = GetPixel( nTextColor_ ); diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index 0bda729..6c98968 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -4268,4 +4268,9 @@ void X11SalFrame::EndSetClipRegion() } +Window X11SalFrame::GetX11Window() +{ + return mhWindow; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit b5b81f8a6588b0eb2dd1cd19f73606220621c1b2 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Mon Oct 27 20:02:10 2014 +0100 handle the OpenGL context for the x11 backend Change-Id: If3f5f879cc4fc0b78c325908c3358d09194144c6 diff --git a/vcl/unx/generic/gdi/salgdi.cxx b/vcl/unx/generic/gdi/salgdi.cxx index 7e4100b..d51d24f 100644 --- a/vcl/unx/generic/gdi/salgdi.cxx +++ b/vcl/unx/generic/gdi/salgdi.cxx @@ -154,10 +154,14 @@ void X11SalGraphics::SetDrawable( Drawable aDrawable, SalX11Screen nXScreen ) else { OpenGLSalGraphicsImpl* pOpenGLImpl = dynamic_cast<OpenGLSalGraphicsImpl*>(mpImpl.get()); - if (pOpenGLImpl) + if (pOpenGLImpl && m_pFrame) { - pOpenGLImpl->GetOpenGLContext().init(GetXDisplay(), - GetDisplay()->GetDrawable(m_nXScreen), m_nXScreen.getXScreen()); + if( dynamic_cast<X11SalFrame*>(m_pFrame)) + { + Window aWin = dynamic_cast<X11SalFrame*>(m_pFrame)->GetDrawable(); + pOpenGLImpl->GetOpenGLContext().init(GetXDisplay(), + aWin, m_nXScreen.getXScreen()); + } } } nTextPixel_ = GetPixel( nTextColor_ ); commit c017d8d7ad6676aab167abaa358e33b9c349b3f2 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Mon Oct 27 20:00:25 2014 +0100 make sure that the frame is set when we need it Change-Id: I1a7a346a53a6ffe409a69e7678b000f2ecafd199 diff --git a/vcl/unx/generic/gdi/salgdi.cxx b/vcl/unx/generic/gdi/salgdi.cxx index 94d03a9..7e4100b 100644 --- a/vcl/unx/generic/gdi/salgdi.cxx +++ b/vcl/unx/generic/gdi/salgdi.cxx @@ -169,10 +169,10 @@ void X11SalGraphics::Init( SalFrame *pFrame, Drawable aTarget, { m_pColormap = &GetGenericData()->GetSalDisplay()->GetColormap(nXScreen); m_nXScreen = nXScreen; + m_pFrame = pFrame; SetDrawable( aTarget, nXScreen ); bWindow_ = true; - m_pFrame = pFrame; m_pVDev = NULL; } commit 0c4414a204f517a920fd8323d3b3ca3204925f00 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Sat Oct 25 12:39:04 2014 +0200 fix misleading log message Change-Id: I8ae574a5eb1c4685abe64e6694d9a71359d6a4d1 diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index cd69fc7..e5b5c6f 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -374,7 +374,7 @@ GLXFBConfig* getFBConfig(Display* dpy, Window win, int& nBestFBC) if( dpy == 0 || !glXQueryExtension( dpy, NULL, NULL ) ) return NULL; - SAL_INFO("vcl.opengl", "parent window: " << win); + SAL_INFO("vcl.opengl", "window: " << win); XWindowAttributes xattr; XGetWindowAttributes( dpy, win, &xattr ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits