1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-21 05:18:06 +01:00

Option to raise bouncing appicons

If the appicon is not in the dock/clip, or the dock/clip is not set to
"Keep on Top", there's a good chance you won't actually see the bouncing
because some other window is covering the appicon.

Besides adding the option to raise bouncing windows, this patch adds a
utility method to move a window back into its correct stacking position
after it has been messed with using XRaiseWindow.

Signed-off-by: Brad Jorsch <anomie@users.sourceforge.net>
This commit is contained in:
Brad Jorsch
2010-09-17 15:33:13 -04:00
committed by Carlos R. Mafra
parent 5b24997446
commit ece6d213aa
6 changed files with 54 additions and 2 deletions

View File

@@ -157,6 +157,46 @@ static void moveFrameToUnder(WCoreWindow * under, WCoreWindow * frame)
XRestackWindows(dpy, wins, 2);
}
/*
*----------------------------------------------------------------------
* CommitStackingForWindow--
* Reorders the stacking for the specified window, so that it has the
* stacking order in the internal window stacking lists.
*
* Side effects:
* Windows may be restacked.
*----------------------------------------------------------------------
*/
void CommitStackingForWindow(WCoreWindow * frame)
{
int level = frame->stacking->window_level;
WScreen *scr = frame->screen_ptr;
if (frame->stacking->above == NULL) {
WMBagIterator iter;
WCoreWindow *above = WMBagLast(scr->stacking_list, &iter);
int i, last = above->stacking->window_level;
/* find the 1st level above us which has windows in it */
for (i = level + 1, above = NULL; i <= last; i++) {
above = WMGetFromBag(scr->stacking_list, i);
if (above != NULL)
break;
}
if (above != frame && above != NULL) {
while (above->stacking->under)
above = above->stacking->under;
moveFrameToUnder(above, frame);
} else {
/* no window above us */
XRaiseWindow(dpy, frame->window);
}
} else {
moveFrameToUnder(frame->stacking->above, frame);
}
}
/*
*----------------------------------------------------------------------
* wRaiseFrame--