Blame SOURCES/0002-Translate-opaque-area-with-frame-margins.patch

f38a11
From d353938c1a07a803656489cada8683e31f8f1c62 Mon Sep 17 00:00:00 2001
b814f0
From: Jan Grulich <jgrulich@redhat.com>
b814f0
Date: Wed, 10 Feb 2021 17:11:27 +0100
f38a11
Subject: [PATCH 02/40] Translate opaque area with frame margins
b814f0
b814f0
The opaque area doesn't take window decorations into account, which may
b814f0
result into possible graphical artefacts.
b814f0
b814f0
Pick-to: 5.15 6.0 6.1
b814f0
Change-Id: I1606e8256e7e204dad927931eb1221b576e227fd
b814f0
Reviewed-by: David Edmundson <davidedmundson@kde.org>
b814f0
---
b814f0
 src/client/qwaylandwindow.cpp | 8 +++++---
b814f0
 1 file changed, 5 insertions(+), 3 deletions(-)
b814f0
b814f0
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
b814f0
index e875af3a..2af39977 100644
b814f0
--- a/src/client/qwaylandwindow.cpp
b814f0
+++ b/src/client/qwaylandwindow.cpp
b814f0
@@ -1234,12 +1234,14 @@ bool QWaylandWindow::isOpaque() const
b814f0
 
b814f0
 void QWaylandWindow::setOpaqueArea(const QRegion &opaqueArea)
b814f0
 {
b814f0
-    if (opaqueArea == mOpaqueArea || !mSurface)
b814f0
+    const QRegion translatedOpaqueArea = opaqueArea.translated(frameMargins().left(), frameMargins().top());
b814f0
+
b814f0
+    if (translatedOpaqueArea == mOpaqueArea || !mSurface)
b814f0
         return;
b814f0
 
b814f0
-    mOpaqueArea = opaqueArea;
b814f0
+    mOpaqueArea = translatedOpaqueArea;
b814f0
 
b814f0
-    struct ::wl_region *region = mDisplay->createRegion(opaqueArea);
b814f0
+    struct ::wl_region *region = mDisplay->createRegion(translatedOpaqueArea);
b814f0
     mSurface->set_opaque_region(region);
b814f0
     wl_region_destroy(region);
b814f0
 }
b814f0
-- 
b814f0
2.35.1
b814f0