summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnu Aliyas <anu.aliyas@qt.io>2024-02-06 16:01:24 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-02-20 16:49:40 +0000
commit4cb86b16d0914369c99c35c8bd6acbb0ef74fd2f (patch)
treede2a29fb6142c0bc7f6f78d8ca228daccb62d169
parent81eb85030daa9dd4cad104196de2856388350b42 (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 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> (cherry picked from commit 97394380fdd20a88b6e8fe4308d7a56134963d83)
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp4
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
{