libqt5-qtwayland/0010-Translate-opaque-area-with-frame-margins.patch
Christophe Giboudeaux fe5900ca7d Accepting request 893496 from home:Vogtinator:qt5.15
- Add more commits from KDE's 5.15 branch:
  * 0008-Fix-memory-leak-in-QWaylandGLContext.patch (QTBUG-85608)
  * 0009-Client-Send-set_window_geometry-only-once-configured.patch
  * 0010-Translate-opaque-area-with-frame-margins.patch
  * 0011-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch
    (QTBUG-86177)
  * 0012-Get-correct-decoration-margins-region.patch
  * 0013-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch
  * 0014-Fix-compilation.patch
  * 0015-client-Allow-QWaylandInputContext-to-accept-composed.patch
    (kde#405388)
  * 0016-Client-Announce-an-output-after-receiving-more-compl.patch
    (kde#435124)
  * 0017-Fix-issue-with-repeated-window-size-changes.patch
  * 0018-Include-locale.h-for-setlocale-LC_CTYPE.patch

OBS-URL: https://build.opensuse.org/request/show/893496
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtwayland?expand=0&rev=15
2021-05-17 18:05:46 +00:00

41 lines
1.4 KiB
Diff

From a3e3ac1c86a956b25b1dc24f14518b6e6c96bcfc Mon Sep 17 00:00:00 2001
From: Jan Grulich <jgrulich@redhat.com>
Date: Wed, 10 Feb 2021 17:11:27 +0100
Subject: [PATCH 10/18] Translate opaque area with frame margins
The opaque area doesn't take window decorations into account, which may
result into possible graphical artefacts.
Pick-to: 5.15 6.0 6.1
Change-Id: I1606e8256e7e204dad927931eb1221b576e227fd
Reviewed-by: David Edmundson <davidedmundson@kde.org>
---
src/client/qwaylandwindow.cpp | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index e875af3a..2af39977 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);
}
--
2.25.1