diff options
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 160c379..07185d3 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -1,3 +1,4 @@ | |||
1 | // $id$ | ||
1 | // Screen.cc for Blackbox - an X11 Window manager | 2 | // Screen.cc for Blackbox - an X11 Window manager |
2 | // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) | 3 | // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) |
3 | // | 4 | // |
@@ -775,53 +776,53 @@ void BScreen::updateNetizenConfigNotify(XEvent *e) { | |||
775 | 776 | ||
776 | 777 | ||
777 | void BScreen::raiseWindows(Window *workspace_stack, int num) { | 778 | void BScreen::raiseWindows(Window *workspace_stack, int num) { |
778 | Window *session_stack = new | 779 | Window session_stack[(num + workspacesList->count() + rootmenuList->count() + 13)]; |
779 | Window[(num + workspacesList->count() + rootmenuList->count() + 13)]; | 780 | int i = 0; |
780 | int i = 0, k = num; | ||
781 | 781 | ||
782 | XRaiseWindow(getBaseDisplay()->getXDisplay(), iconmenu->getWindowID()); | 782 | XRaiseWindow(getBaseDisplay()->getXDisplay(), iconmenu->getWindowID()); |
783 | *(session_stack + i++) = iconmenu->getWindowID(); | 783 | session_stack[i++] = iconmenu->getWindowID(); |
784 | 784 | ||
785 | LinkedListIterator<Workspace> wit(workspacesList); | 785 | LinkedListIterator<Workspace> wit(workspacesList); |
786 | for (; wit.current(); wit++) | 786 | for (; wit.current(); wit++) |
787 | *(session_stack + i++) = wit.current()->getMenu()->getWindowID(); | 787 | session_stack[i++] = wit.current()->getMenu()->getWindowID(); |
788 | 788 | ||
789 | *(session_stack + i++) = workspacemenu->getWindowID(); | 789 | session_stack[i++] = workspacemenu->getWindowID(); |
790 | 790 | ||
791 | *(session_stack + i++) = configmenu->getFocusmenu()->getWindowID(); | 791 | session_stack[i++] = configmenu->getFocusmenu()->getWindowID(); |
792 | *(session_stack + i++) = configmenu->getPlacementmenu()->getWindowID(); | 792 | session_stack[i++] = configmenu->getPlacementmenu()->getWindowID(); |
793 | *(session_stack + i++) = configmenu->getTabmenu()->getWindowID(); | 793 | session_stack[i++] = configmenu->getTabmenu()->getWindowID(); |
794 | *(session_stack + i++) = configmenu->getWindowID(); | 794 | session_stack[i++] = configmenu->getWindowID(); |
795 | 795 | ||
796 | #ifdef SLIT | 796 | #ifdef SLIT |
797 | *(session_stack + i++) = slit->getMenu()->getDirectionmenu()->getWindowID(); | 797 | session_stack[i++] = slit->getMenu()->getDirectionmenu()->getWindowID(); |
798 | *(session_stack + i++) = slit->getMenu()->getPlacementmenu()->getWindowID(); | 798 | session_stack[i++] = slit->getMenu()->getPlacementmenu()->getWindowID(); |
799 | *(session_stack + i++) = slit->getMenu()->getWindowID(); | 799 | session_stack[i++] = slit->getMenu()->getWindowID(); |
800 | #endif // SLIT | 800 | #endif // SLIT |
801 | 801 | ||
802 | *(session_stack + i++) = | 802 | session_stack[i++] = |
803 | toolbar->getMenu()->getPlacementmenu()->getWindowID(); | 803 | toolbar->getMenu()->getPlacementmenu()->getWindowID(); |
804 | *(session_stack + i++) = toolbar->getMenu()->getWindowID(); | 804 | session_stack[i++] = toolbar->getMenu()->getWindowID(); |
805 | 805 | ||
806 | LinkedListIterator<Rootmenu> rit(rootmenuList); | 806 | LinkedListIterator<Rootmenu> rit(rootmenuList); |
807 | for (; rit.current(); rit++) | 807 | for (; rit.current(); rit++) |
808 | *(session_stack + i++) = rit.current()->getWindowID(); | 808 | session_stack[i++] = rit.current()->getWindowID(); |
809 | *(session_stack + i++) = rootmenu->getWindowID(); | 809 | session_stack[i++] = rootmenu->getWindowID(); |
810 | 810 | ||
811 | if (toolbar->isOnTop()) | 811 | if (toolbar->isOnTop()) |
812 | *(session_stack + i++) = toolbar->getWindowID(); | 812 | session_stack[i++] = toolbar->getWindowID(); |
813 | 813 | ||
814 | #ifdef SLIT | 814 | #ifdef SLIT |
815 | if (slit->isOnTop()) | 815 | if (slit->isOnTop()) |
816 | *(session_stack + i++) = slit->getWindowID(); | 816 | session_stack[i++] = slit->getWindowID(); |
817 | #endif // SLIT | 817 | #endif // SLIT |
818 | 818 | ||
819 | int k=num; | ||
819 | while (k--) | 820 | while (k--) |
820 | *(session_stack + i++) = *(workspace_stack + k); | 821 | session_stack[i++] = *(workspace_stack + k); |
821 | 822 | ||
822 | XRestackWindows(getBaseDisplay()->getXDisplay(), session_stack, i); | 823 | XRestackWindows(getBaseDisplay()->getXDisplay(), session_stack, i); |
823 | 824 | ||
824 | delete [] session_stack; | 825 | // delete session_stack; |
825 | } | 826 | } |
826 | 827 | ||
827 | 828 | ||