diff options
Diffstat (limited to 'src/plugins/platforms/xlib/qxlibnativeinterface.cpp')
-rw-r--r-- | src/plugins/platforms/xlib/qxlibnativeinterface.cpp | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/src/plugins/platforms/xlib/qxlibnativeinterface.cpp b/src/plugins/platforms/xlib/qxlibnativeinterface.cpp index 76396aaeb6..2c706e64e4 100644 --- a/src/plugins/platforms/xlib/qxlibnativeinterface.cpp +++ b/src/plugins/platforms/xlib/qxlibnativeinterface.cpp @@ -39,10 +39,11 @@ ** ****************************************************************************/ +#include <private/qguiapplication_p.h> #include "qxlibnativeinterface.h" #include "qxlibdisplay.h" -#include <QtGui/private/qapplication_p.h> +#include "qscreen.h" class QXlibResourceMap : public QMap<QByteArray, QXlibNativeInterface::ResourceType> { @@ -62,29 +63,29 @@ public: Q_GLOBAL_STATIC(QXlibResourceMap, qXlibResourceMap) -void * QXlibNativeInterface::nativeResourceForWidget(const QByteArray &resourceString, QWidget *widget) +void * QXlibNativeInterface::nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) { QByteArray lowerCaseResource = resourceString.toLower(); ResourceType resource = qXlibResourceMap()->value(lowerCaseResource); void *result = 0; switch(resource) { case Display: - result = displayForWidget(widget); + result = displayForWindow(window); break; case EglDisplay: - result = eglDisplayForWidget(widget); + result = eglDisplayForWindow(window); break; case Connection: - result = connectionForWidget(widget); + result = connectionForWindow(window); break; case Screen: - result = reinterpret_cast<void *>(qPlatformScreenForWidget(widget)->xScreenNumber()); + result = reinterpret_cast<void *>(qPlatformScreenForWindow(window)->xScreenNumber()); break; case GraphicsDevice: - result = graphicsDeviceForWidget(widget); + result = graphicsDeviceForWindow(window); break; case EglContext: - result = eglContextForWidget(widget); + result = eglContextForWindow(window); break; default: result = 0; @@ -92,42 +93,37 @@ void * QXlibNativeInterface::nativeResourceForWidget(const QByteArray &resourceS return result; } -void * QXlibNativeInterface::displayForWidget(QWidget *widget) +void * QXlibNativeInterface::displayForWindow(QWindow *window) { - return qPlatformScreenForWidget(widget)->display()->nativeDisplay(); + return qPlatformScreenForWindow(window)->display()->nativeDisplay(); } -void * QXlibNativeInterface::eglDisplayForWidget(QWidget *widget) +void * QXlibNativeInterface::eglDisplayForWindow(QWindow *window) { - Q_UNUSED(widget); + Q_UNUSED(window); return 0; } -void * QXlibNativeInterface::screenForWidget(QWidget *widget) +void * QXlibNativeInterface::screenForWindow(QWindow *window) { - Q_UNUSED(widget); + Q_UNUSED(window); return 0; } -void * QXlibNativeInterface::graphicsDeviceForWidget(QWidget *widget) +void * QXlibNativeInterface::graphicsDeviceForWindow(QWindow *window) { - Q_UNUSED(widget); + Q_UNUSED(window); return 0; } -void * QXlibNativeInterface::eglContextForWidget(QWidget *widget) +void * QXlibNativeInterface::eglContextForWindow(QWindow *window) { - Q_UNUSED(widget); + Q_UNUSED(window); return 0; } -QXlibScreen * QXlibNativeInterface::qPlatformScreenForWidget(QWidget *widget) +QXlibScreen * QXlibNativeInterface::qPlatformScreenForWindow(QWindow *window) { - QXlibScreen *screen; - if (widget) { - screen = static_cast<QXlibScreen *>(QPlatformScreen::platformScreenForWidget(widget)); - }else { - screen = static_cast<QXlibScreen *>(QApplicationPrivate::platformIntegration()->screens()[0]); - } - return screen; + QScreen *screen = window ? window->screen() : QGuiApplication::primaryScreen(); + return static_cast<QXlibScreen *>(screen->handle()); } |