https://bugs.kde.org/show_bug.cgi?id=395725

--- Comment #23 from Kristopher Ives <kristopher.i...@gmail.com> ---
After some debugging it seems the easiest way to move forward past these
problems would be to add support in KDecoration2::Decoration so that it can
calculate the shape of a window. Then these lines could be modified in the blur
plugin to have an additional mask afterwards:

https://github.com/KDE/kwin/blob/e8fe3f2fb7195fe562a073d1a78eb05d74670cfd/effects/blur/blur.cpp#L389-L413

Basically, it would end up having something like this near the end of it:

    if (AbstractClient *c = dynamic_cast< AbstractClient * > (toplevel)) {
      if (KDecoration2::Decoration *d = c->decoration()) {
        if (d->hasWindowShape()) {
          region &= d->windowShape(w);
        }
      }
    }

"hasWindowShape" and "windowShape" are just example names, but would be the new
methods added to KDecoration2::Decoration. The default implementation would be
for hasWindowShape() to return false and the default implementation for
windowshape() would be to return the rectangle of the window. However, a
decoration could opt to return a QRegion from windowShape() that better
describes the shape of the window with it's decorations - such as a rectangle
with rounded corners.

If this can already be done with the existing KWin frameworks I am interested
to know how.

Thanks

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to