summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbnativeinterface.cpp')
-rw-r--r--src/plugins/platforms/xcb/qxcbnativeinterface.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
index fa5f5f43d0..a44e7fb959 100644
--- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
+++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
@@ -104,6 +104,25 @@ void *QXcbNativeInterface::nativeResourceForContext(const QByteArray &resourceSt
return result;
}
+void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resource, QScreen *screen)
+{
+ const QXcbResourceMap::const_iterator it = qXcbResourceMap()->constFind(resource.toLower());
+ if (it == qXcbResourceMap()->constEnd() || !screen->handle())
+ return 0;
+ const QXcbScreen *xcbScreen = static_cast<QXcbScreen *>(screen->handle());
+ switch (it.value()) {
+ case Display:
+#ifdef XCB_USE_XLIB
+ return xcbScreen->connection()->xlib_display();
+#else
+ break;
+#endif
+ default:
+ break;
+ }
+ return 0;
+}
+
void *QXcbNativeInterface::nativeResourceForWindow(const QByteArray &resourceString, QWindow *window)
{
QByteArray lowerCaseResource = resourceString.toLower();