]> Dogcows Code - chaz/openbox/blobdiff - src/Screen.cc
including wrong
[chaz/openbox] / src / Screen.cc
index 60cd8e09bfee6f7ab9fad63b9c981cfbb32eeace..86d425d7be868c906705320edb3a61f365cb2982 100644 (file)
@@ -212,7 +212,7 @@ BScreen::BScreen(Blackbox *bb, unsigned int scrn) : ScreenInfo(bb, scrn) {
   iconmenu = new Iconmenu(this);
   configmenu = new Configmenu(this);
 
-  if (resource.workspaces != 0) {
+  if (resource.workspaces > 0) {
     for (unsigned int i = 0; i < resource.workspaces; ++i) {
       Workspace *wkspc = new Workspace(this, workspacesList.size());
       workspacesList.push_back(wkspc);
@@ -1245,12 +1245,6 @@ void BScreen::manageWindow(Window w) {
 void BScreen::unmanageWindow(BlackboxWindow *w, bool remap) {
   w->restore(remap);
 
-  if (w->getWorkspaceNumber() != BSENTINEL &&
-      w->getWindowNumber() != BSENTINEL)
-    getWorkspace(w->getWorkspaceNumber())->removeWindow(w);
-  else if (w->isIconic())
-    removeIcon(w);
-
   if (w->isNormal()) {
     // we don't list non-normal windows as managed windows
     windowList.remove(w);
@@ -1266,9 +1260,6 @@ void BScreen::unmanageWindow(BlackboxWindow *w, bool remap) {
     assert(it != end);  // the window wasnt a desktop window?
   }
 
-  if (blackbox->getFocusedWindow() == w)
-    blackbox->setFocusedWindow((BlackboxWindow *) 0);
-
   removeNetizen(w->getClientWindow());
 
   /*
@@ -1399,8 +1390,13 @@ void BScreen::updateNetizenConfigNotify(XEvent *e) {
 
 void BScreen::raiseWindows(Window *workspace_stack, unsigned int num) {
   // the 13 represents the number of blackbox windows such as menus
+  int bbwins = 13;
+#ifdef    XINERAMA
+  ++bbwins;
+#endif // XINERAMA
+
   Window *session_stack = new
-    Window[(num + workspacesList.size() + rootmenuList.size() + 13)];
+    Window[(num + workspacesList.size() + rootmenuList.size() + bbwins)];
   unsigned int i = 0, k = num;
 
   XRaiseWindow(blackbox->getXDisplay(), iconmenu->getWindowID());
@@ -1415,6 +1411,9 @@ void BScreen::raiseWindows(Window *workspace_stack, unsigned int num) {
 
   *(session_stack + i++) = configmenu->getFocusmenu()->getWindowID();
   *(session_stack + i++) = configmenu->getPlacementmenu()->getWindowID();
+#ifdef    XINERAMA
+  *(session_stack + i++) = configmenu->getXineramamenu()->getWindowID();
+#endif // XINERAMA
   *(session_stack + i++) = configmenu->getWindowID();
 
   *(session_stack + i++) = slit->getMenu()->getDirectionmenu()->getWindowID();
@@ -2074,16 +2073,16 @@ const Rect& BScreen::availableArea(void) const {
 }
 
 
-RectList BScreen::allAvailableAreas(void) const {
 #ifdef    XINERAMA
-  if (isXineramaActive())
-    return xineramaUsableArea;
-#endif // XINERAMA
-
-  RectList list;
-  list.push_back(availableArea());
-  return list;
+const RectList& BScreen::allAvailableAreas(void) const {
+  assert(isXineramaActive());
+  assert(xineramaUsableArea.size() > 0);
+  fprintf(stderr, "1found x %d y %d w %d h %d\n",
+          xineramaUsableArea[0].x(), xineramaUsableArea[0].y(),
+          xineramaUsableArea[0].width(), xineramaUsableArea[0].height());
+  return xineramaUsableArea;
 }
+#endif // XINERAMA
 
 
 void BScreen::updateAvailableArea(void) {
This page took 0.022467 seconds and 4 git commands to generate.