diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp
index 6e8755a2206c4c9fd5032b41b0c7c2464f81d42d..a141882fc40fc072b4b31c58f9a3814bec818c6d 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.cpp
+++ b/src/plugins/platforms/xcb/qxcbintegration.cpp
@@ -203,7 +203,7 @@ QPlatformWindow *QXcbIntegration::createPlatformWindow(QWindow *window) const
 {
     QXcbScreen *screen = static_cast<QXcbScreen *>(window->screen()->handle());
     QXcbGlIntegration *glIntegration = screen->connection()->glIntegration();
-    if (window->type() != Qt::Desktop) {
+    if (window->type() != Qt::Desktop && window->supportsOpenGL()) {
         if (glIntegration) {
             QXcbWindow *xcbWindow = glIntegration->createWindow(window);
             xcbWindow->create();