summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Grulich <jgrulich@redhat.com>2021-02-10 17:11:27 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-02-23 11:22:16 +0000
commit755dc98b82a10820ef949272a57bc5278cef7b27 (patch)
tree94a17daacfd0d47a1e23a2051941c2bf7c9ba725
parent991c8e9b9b4075a9b484af30ee275a2a7f72501c (diff)
downloadqtwayland-755dc98b82a10820ef949272a57bc5278cef7b27.tar.gz
Translate opaque area with frame margins
The opaque area doesn't take window decorations into account, which may result into possible graphical artefacts. Change-Id: I1606e8256e7e204dad927931eb1221b576e227fd Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 3aed1fe7132c00cc7ce9b0fe8fc9e8ccdc771d38) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/client/qwaylandwindow.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 00679ec5..fd3cc496 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -1234,12 +1234,14 @@ bool QWaylandWindow::isOpaque() const
void QWaylandWindow::setOpaqueArea(const QRegion &opaqueArea)
{
- if (opaqueArea == mOpaqueArea || !mSurface)
+ const QRegion translatedOpaqueArea = opaqueArea.translated(frameMargins().left(), frameMargins().top());
+
+ if (translatedOpaqueArea == mOpaqueArea || !mSurface)
return;
- mOpaqueArea = opaqueArea;
+ mOpaqueArea = translatedOpaqueArea;
- struct ::wl_region *region = mDisplay->createRegion(opaqueArea);
+ struct ::wl_region *region = mDisplay->createRegion(translatedOpaqueArea);
mSurface->set_opaque_region(region);
wl_region_destroy(region);
}