Fixed slit:onTop and toolbar:onTop bug

This commit is contained in:
fluxgen 2001-12-30 12:05:26 +00:00
parent 4689664af0
commit 1ffec7ce96

View file

@ -1,3 +1,4 @@
// $id$
// Screen.cc for Blackbox - an X11 Window manager // Screen.cc for Blackbox - an X11 Window manager
// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
// //
@ -775,53 +776,53 @@ void BScreen::updateNetizenConfigNotify(XEvent *e) {
void BScreen::raiseWindows(Window *workspace_stack, int num) { void BScreen::raiseWindows(Window *workspace_stack, int num) {
Window *session_stack = new Window session_stack[(num + workspacesList->count() + rootmenuList->count() + 13)];
Window[(num + workspacesList->count() + rootmenuList->count() + 13)]; int i = 0;
int i = 0, k = num;
XRaiseWindow(getBaseDisplay()->getXDisplay(), iconmenu->getWindowID()); XRaiseWindow(getBaseDisplay()->getXDisplay(), iconmenu->getWindowID());
*(session_stack + i++) = iconmenu->getWindowID(); session_stack[i++] = iconmenu->getWindowID();
LinkedListIterator<Workspace> wit(workspacesList); LinkedListIterator<Workspace> wit(workspacesList);
for (; wit.current(); wit++) for (; wit.current(); wit++)
*(session_stack + i++) = wit.current()->getMenu()->getWindowID(); session_stack[i++] = wit.current()->getMenu()->getWindowID();
*(session_stack + i++) = workspacemenu->getWindowID(); session_stack[i++] = workspacemenu->getWindowID();
*(session_stack + i++) = configmenu->getFocusmenu()->getWindowID(); session_stack[i++] = configmenu->getFocusmenu()->getWindowID();
*(session_stack + i++) = configmenu->getPlacementmenu()->getWindowID(); session_stack[i++] = configmenu->getPlacementmenu()->getWindowID();
*(session_stack + i++) = configmenu->getTabmenu()->getWindowID(); session_stack[i++] = configmenu->getTabmenu()->getWindowID();
*(session_stack + i++) = configmenu->getWindowID(); session_stack[i++] = configmenu->getWindowID();
#ifdef SLIT #ifdef SLIT
*(session_stack + i++) = slit->getMenu()->getDirectionmenu()->getWindowID(); session_stack[i++] = slit->getMenu()->getDirectionmenu()->getWindowID();
*(session_stack + i++) = slit->getMenu()->getPlacementmenu()->getWindowID(); session_stack[i++] = slit->getMenu()->getPlacementmenu()->getWindowID();
*(session_stack + i++) = slit->getMenu()->getWindowID(); session_stack[i++] = slit->getMenu()->getWindowID();
#endif // SLIT #endif // SLIT
*(session_stack + i++) = session_stack[i++] =
toolbar->getMenu()->getPlacementmenu()->getWindowID(); toolbar->getMenu()->getPlacementmenu()->getWindowID();
*(session_stack + i++) = toolbar->getMenu()->getWindowID(); session_stack[i++] = toolbar->getMenu()->getWindowID();
LinkedListIterator<Rootmenu> rit(rootmenuList); LinkedListIterator<Rootmenu> rit(rootmenuList);
for (; rit.current(); rit++) for (; rit.current(); rit++)
*(session_stack + i++) = rit.current()->getWindowID(); session_stack[i++] = rit.current()->getWindowID();
*(session_stack + i++) = rootmenu->getWindowID(); session_stack[i++] = rootmenu->getWindowID();
if (toolbar->isOnTop()) if (toolbar->isOnTop())
*(session_stack + i++) = toolbar->getWindowID(); session_stack[i++] = toolbar->getWindowID();
#ifdef SLIT #ifdef SLIT
if (slit->isOnTop()) if (slit->isOnTop())
*(session_stack + i++) = slit->getWindowID(); session_stack[i++] = slit->getWindowID();
#endif // SLIT #endif // SLIT
int k=num;
while (k--) while (k--)
*(session_stack + i++) = *(workspace_stack + k); session_stack[i++] = *(workspace_stack + k);
XRestackWindows(getBaseDisplay()->getXDisplay(), session_stack, i); XRestackWindows(getBaseDisplay()->getXDisplay(), session_stack, i);
delete [] session_stack; // delete session_stack;
} }