rendered paste bodydiff --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);
}
}