aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.cc
diff options
context:
space:
mode:
authorfluxgen <fluxgen>2001-12-30 12:05:26 (GMT)
committerfluxgen <fluxgen>2001-12-30 12:05:26 (GMT)
commit1ffec7ce9605a859521c5af9229a673a6df6c539 (patch)
treec8c91d19a0322f1ea4c842d133b6f2181d227a7a /src/Screen.cc
parent4689664af0df44affd0f7fa6aa7fb05bdb41d5d3 (diff)
downloadfluxbox-1ffec7ce9605a859521c5af9229a673a6df6c539.zip
fluxbox-1ffec7ce9605a859521c5af9229a673a6df6c539.tar.bz2
Fixed slit:onTop and toolbar:onTop bug
Diffstat (limited to 'src/Screen.cc')
-rw-r--r--src/Screen.cc45
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
777void BScreen::raiseWindows(Window *workspace_stack, int num) { 778void 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