diff options
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qwidget_qpa.cpp | 7 | ||||
-rw-r--r-- | src/widgets/platforms/x11/qapplication_x11.cpp | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index 6721fdbb6a..02487679bf 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -96,6 +96,12 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO win->setWindowFlags(data.window_flags); win->setGeometry(q->geometry()); + if (q->testAttribute(Qt::WA_TranslucentBackground)) { + QWindowFormat format = win->requestedWindowFormat(); + format.setAlphaBufferSize(8); + win->setWindowFormat(format); + } + if (QWidget *nativeParent = q->nativeParentWidget()) { if (nativeParent->windowHandle()) win->setParent(nativeParent->windowHandle()); @@ -396,6 +402,7 @@ void QWidgetPrivate::show_sys() surface->resize(geomRect.size()); } } + if (window) window->setVisible(true); } diff --git a/src/widgets/platforms/x11/qapplication_x11.cpp b/src/widgets/platforms/x11/qapplication_x11.cpp index 20542ea328..d1f9eb1b8a 100644 --- a/src/widgets/platforms/x11/qapplication_x11.cpp +++ b/src/widgets/platforms/x11/qapplication_x11.cpp @@ -1740,8 +1740,8 @@ void qt_init(QApplicationPrivate *priv, int, } else { // Qt controls everything (default) - if (QApplication::testAttribute(Qt::AA_X11InitThreads)) - XInitThreads(); + // With the threaded QML renderer, we always need this. + XInitThreads(); // Set application name and class char *app_class = 0; |