All pastes #544649 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-06-06 15:08 UTC
rendered paste body
diff --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)