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>
This commit is contained in:
parent
d56e534dba
commit
9227c5d18d
@ -1242,12 +1242,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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user