All pastes #548157 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-07 17:11 UTC
rendered paste body
diff --git a/group.c b/group.c
index 6721266..59aa9d5 100644
--- a/group.c
+++ b/group.c
@@ -1004,8 +1004,12 @@ groupHandleButtonReleaseEvent(CompDisplay *d, XEvent *event)
 			// Hide tab-bars.
 			GroupSelection *tmpGroup;
 			for(tmpGroup = gs->groups; tmpGroup; tmpGroup = tmpGroup->next)
-				groupTabSetVisibility(tmpGroup, FALSE, PERMANENT);
-			
+			{
+				if (tmpGroup != group)
+					groupTabSetVisibility(tmpGroup, FALSE, PERMANENT);
+				else
+					groupTabSetVisibility(tmpGroup, TRUE, 0);
+			}
 			break;
 		}
 
diff --git a/tab.c b/tab.c
index e920884..d0144a0 100644
--- a/tab.c
+++ b/tab.c
@@ -327,6 +327,12 @@ void groupTabSetVisibility(GroupSelection *group, Bool visible, unsigned int mas
 		groupSwitchTopTabInput(group, FALSE);
 	
 	}
+
+	else if (visible && bar->state == PaintPermanentOn &&
+			 !(mask & PERMANENT))
+	{
+		bar->state = PaintOn;
+	}
 	
 	else if (visible && 
 		(bar->state == PaintOff || bar->state == PaintFadeOut))
@@ -1249,19 +1255,16 @@ void groupUpdateTabBars(CompScreen *s, Window enteredWin)
 		if (bar && ((bar->state == PaintOff) || (bar->state == PaintFadeOut))) {			
 			int showDelayTime = groupGetTabbarShowDelay(s) * 1000;
 	
-			if (bar->state == PaintOff)
+			/* Show the tab-bar after a delay, only if the tab-bar wasn't fading out. */
+			if (showDelayTime > 0 && (bar->state == PaintOff))
 			{
-				/* Show the tab-bar after a delay, only if the tab-bar wasn't fading out. */
-				if (showDelayTime > 0)
-				{
-					if (gs->showDelayTimeoutHandle)
-						compRemoveTimeout (gs->showDelayTimeoutHandle);
-					gs->showDelayTimeoutHandle = 
-						compAddTimeout(showDelayTime, groupShowDelayTimeout, hoveredGroup);
-				}
-				else
-					groupShowDelayTimeout(hoveredGroup);
+				if (gs->showDelayTimeoutHandle)
+					compRemoveTimeout (gs->showDelayTimeoutHandle);
+				gs->showDelayTimeoutHandle = 
+					compAddTimeout(showDelayTime, groupShowDelayTimeout, hoveredGroup);
 			}
+			else
+				groupShowDelayTimeout(hoveredGroup);
 		}
 	}