Fix computation of effective opaque region of SurfaceItemX11
The value of _NET_WM_OPAQUE_REGION can be out of sync with the geometry of the window. The NETWM spec suggests to compute the effective opaque region by taking intersection of _NET_WM_OPAQUE_REGION and the bounding region set by the shape extension. SurfaceItemX11::opaque() got broken after refactoring opaque region handling in wayland surfaces so SurfaceInterface::opaque() always returns a sane value, the computation of effective opaque region is done in SurfaceInterface at commit time. BUG: 455617
This commit is contained in:
parent
c1a536a527
commit
35a3184ea3
1 changed files with 5 additions and 1 deletions
|
@ -139,7 +139,11 @@ QRegion SurfaceItemX11::shape() const
|
|||
|
||||
QRegion SurfaceItemX11::opaque() const
|
||||
{
|
||||
return window()->opaqueRegion();
|
||||
if (!window()->hasAlpha()) {
|
||||
return shape();
|
||||
} else {
|
||||
return window()->opaqueRegion() & shape();
|
||||
}
|
||||
}
|
||||
|
||||
SurfacePixmap *SurfaceItemX11::createPixmap()
|
||||
|
|
Loading…
Reference in a new issue