summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/kernel/qwidget_qpa.cpp7
-rw-r--r--src/widgets/platforms/x11/qapplication_x11.cpp4
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;