[effects/blur] Don't blur outside the frame rect
We need to clip the blur region to ensure that the background behind client side drop shadows is not blurred. BUG: 422202
This commit is contained in:
parent
61c6d58172
commit
309fbf1837
1 changed files with 3 additions and 3 deletions
|
@ -417,7 +417,7 @@ QRegion BlurEffect::blurRegion(const EffectWindow *w) const
|
|||
const QRegion appRegion = qvariant_cast<QRegion>(value);
|
||||
if (!appRegion.isEmpty()) {
|
||||
if (w->decorationHasAlpha() && effects->decorationSupportsBlurBehind()) {
|
||||
region = w->shape();
|
||||
region = w->shape() & w->rect();
|
||||
region -= w->decorationInnerRect();
|
||||
}
|
||||
region |= appRegion.translated(w->contentsRect().topLeft()) &
|
||||
|
@ -425,12 +425,12 @@ QRegion BlurEffect::blurRegion(const EffectWindow *w) const
|
|||
} else {
|
||||
// An empty region means that the blur effect should be enabled
|
||||
// for the whole window.
|
||||
region = w->shape();
|
||||
region = w->shape() & w->rect();
|
||||
}
|
||||
} else if (w->decorationHasAlpha() && effects->decorationSupportsBlurBehind()) {
|
||||
// If the client hasn't specified a blur region, we'll only enable
|
||||
// the effect behind the decoration.
|
||||
region = w->shape();
|
||||
region = w->shape() & w->rect();
|
||||
region -= w->decorationInnerRect();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue