Client: Fix incorrect damage for decoration edges
[ChangeLog][QPA plugin] Fixed a bug where surface damage for window decorations was outside the surface. Fixes: QTBUG-72818 Change-Id: I32d00174f1c308952a98bdb55731eb77be54f331 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
This commit is contained in:
parent
08c6462d1b
commit
c09a3a27b6
@ -100,6 +100,7 @@ void QWaylandAbstractDecoration::setWaylandWindow(QWaylandWindow *window)
|
|||||||
d->m_wayland_window = window;
|
d->m_wayland_window = window;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// \a size is without margins
|
||||||
static QRegion marginsRegion(const QSize &size, const QMargins &margins)
|
static QRegion marginsRegion(const QSize &size, const QMargins &margins)
|
||||||
{
|
{
|
||||||
QRegion r;
|
QRegion r;
|
||||||
@ -123,7 +124,7 @@ const QImage &QWaylandAbstractDecoration::contentImage()
|
|||||||
d->m_decorationContentImage.fill(Qt::transparent);
|
d->m_decorationContentImage.fill(Qt::transparent);
|
||||||
this->paint(&d->m_decorationContentImage);
|
this->paint(&d->m_decorationContentImage);
|
||||||
|
|
||||||
QRegion damage = marginsRegion(window()->frameGeometry().size(), window()->frameMargins());
|
QRegion damage = marginsRegion(window()->geometry().size(), window()->frameMargins());
|
||||||
for (QRect r : damage)
|
for (QRect r : damage)
|
||||||
waylandWindow()->damage(r);
|
waylandWindow()->damage(r);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user