diff options
author | Anu Aliyas <anu.aliyas@qt.io> | 2024-02-06 16:01:24 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-02-13 08:08:33 +0000 |
commit | 97394380fdd20a88b6e8fe4308d7a56134963d83 (patch) | |
tree | e217ee2ed36989a9e2edff5c61f6bb56157af0ec | |
parent | 13d82cccbc9d0855c79fb52760803cb052ebc66b (diff) |
Fix for view displaying blank content with transparent background
For transparent background color, QtWebEngine will set the attribute
Qt::WA_AlwaysStackOnTop to true. This change necessitates triggering an
update on the top-level window. The code has been adjusted to invoke an
update on the parent widget if one is present. Additionally, update is
disabled while widget attributes are being updated, and re-enabled once
all attributes are properly set. This prevents unnecessary updates and
ensures the widget updates only after all values are set.
Fixes: QTBUG-120273
Fixes: QTBUG-121227
Pick-to: 6.6
Change-Id: Id2a103a59e9dfeb98ac2245ec274360e3c65f239
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Moss Heim <moss.heim@qt.io>
(cherry picked from commit 5c73b7f5719b61aad1d7709fee3f810732bb3fba)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index c4a0da4d9..5aeeeb638 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -156,6 +156,7 @@ public: } void SetClearColor(const QColor &color) override { + setUpdatesEnabled(false); QQuickWidget::setClearColor(color); // QQuickWidget is usually blended by punching holes into widgets // above it to simulate the visual stacking order. If we want it to be @@ -164,7 +165,8 @@ public: bool isTranslucent = color.alpha() < 255; setAttribute(Qt::WA_AlwaysStackOnTop, isTranslucent); setAttribute(Qt::WA_OpaquePaintEvent, !isTranslucent); - update(); + setUpdatesEnabled(true); + window()->update(); } void MoveWindow(const QPoint &screenPos) override { |