Repaint area between offset and window in sliding popups
As this area was not repainted it caused visual garbage during animationgs. Most visible with yakuake and a panel at the top. Offset in that case is the upper screenedge while yakuake is positioned below the panel. The area of the panel did not get repainted causing the garbage. CCBUG: 264765
This commit is contained in:
parent
f6233828fe
commit
e0906c8766
1 changed files with 17 additions and 1 deletions
|
@ -126,8 +126,24 @@ void SlidingPopupsEffect::paintWindow(EffectWindow* w, int mask, QRegion region,
|
||||||
|
|
||||||
void SlidingPopupsEffect::postPaintWindow(EffectWindow* w)
|
void SlidingPopupsEffect::postPaintWindow(EffectWindow* w)
|
||||||
{
|
{
|
||||||
if (mAppearingWindows.contains(w) || mDisappearingWindows.contains(w))
|
if (mAppearingWindows.contains(w) || mDisappearingWindows.contains(w)) {
|
||||||
w->addRepaintFull(); // trigger next animation repaint
|
w->addRepaintFull(); // trigger next animation repaint
|
||||||
|
const int start = mWindowsData[ w ].start;
|
||||||
|
switch(mWindowsData[ w ].from) {
|
||||||
|
case West:
|
||||||
|
effects->addRepaint(QRect(start, w->y(), w->x(), w->height()));
|
||||||
|
break;
|
||||||
|
case North:
|
||||||
|
effects->addRepaint(QRect(w->x(), start, w->width(), w->y()));
|
||||||
|
break;
|
||||||
|
case East:
|
||||||
|
effects->addRepaint(QRect(w->x() + w->width(), w->y(), displayWidth() - w->x() - w->width() - start, w->height()));
|
||||||
|
break;
|
||||||
|
case South:
|
||||||
|
default:
|
||||||
|
effects->addRepaint(QRect(w->x(), w->y()+w->height(), w->width(), displayHeight() - w->y() - w->height() - start));
|
||||||
|
}
|
||||||
|
}
|
||||||
effects->postPaintWindow(w);
|
effects->postPaintWindow(w);
|
||||||
if (mDisappearingWindows.contains(w) && mDisappearingWindows[ w ]->currentValue() >= 1) {
|
if (mDisappearingWindows.contains(w) && mDisappearingWindows[ w ]->currentValue() >= 1) {
|
||||||
delete mDisappearingWindows.take(w);
|
delete mDisappearingWindows.take(w);
|
||||||
|
|
Loading…
Reference in a new issue