rendered paste bodydiff --git a/paint.c b/paint.c
index 798f095..efab3a4 100644
--- a/paint.c
+++ b/paint.c
@@ -104,8 +104,6 @@ void groupPaintThumb(GroupSelection *group, GroupTabBarSlot *slot, const CompTra
PAINT_WINDOW_TRANSFORMED_MASK | PAINT_WINDOW_TRANSLUCENT_MASK);
glPopMatrix();
-
- addWindowDamage(w);
}
w->screen->addWindowGeometry = oldAddWindowGeometry;
@@ -1039,8 +1037,12 @@ void groupDonePaintScreen(CompScreen * s)
if (group->changeState != PaintOff)
damageScreen(s);
- if (group->tabBar && group->tabBar->state != PaintOff)
+ if (group->tabBar &&
+ ((group->tabBar->state == PaintFadeIn) ||
+ (group->tabBar->state == PaintFadeOut)))
+ {
damageScreenRegion(s, group->tabBar->region);
+ }
}
}
diff --git a/tab.c b/tab.c
index fd87912..f541072 100644
--- a/tab.c
+++ b/tab.c
@@ -2040,6 +2040,9 @@ void groupRecalcTabBarPos(GroupSelection *group, int middleX, int minX1, int max
bar->bgLayer = groupRebuildCairoLayer(group->screen, bar->bgLayer, box.width + space + thumb_size, box.height);
bar->oldWidth = 0; // trigger repaint
}
+
+ /* damage the new extents */
+ damageScreenRegion (group->screen, bar->region);
}
/*
@@ -2492,8 +2495,10 @@ void groupApplySpeeds(CompScreen* s, GroupTabBar* bar, int msSinceLastRepaint)
if(updateTabBar)
{
+ damageScreenRegion (s, bar->region);
EMPTY_REGION(bar->region);
XUnionRectWithRegion(&box, bar->region, bar->region);
+ damageScreenRegion (s, bar->region);
}
for(slot = bar->slots; slot; slot = slot->next)