]> Dogcows Code - chaz/openbox/blobdiff - src/Screen.cc
merged with 2_1-merged-to-HEAD-2002-09-30
[chaz/openbox] / src / Screen.cc
index 987f923bd41eb04845131d9baed5714d76c03795..7e7ce5a4f5d68342e337ab958319431336d93095 100644 (file)
@@ -429,15 +429,15 @@ void BScreen::saveFocusLast(bool f) {
 
 void BScreen::saveAAFonts(bool f) {
   resource.aa_fonts = f;
-  reconfigure();
   config->setValue(screenstr + "antialiasFonts", resource.aa_fonts);
+  reconfigure();
 }
 
 
 void BScreen::saveShadowFonts(bool f) {
   resource.shadow_fonts = f;
-  reconfigure();
   config->setValue(screenstr + "dropShadowFonts", resource.shadow_fonts);
+  reconfigure();
 }
 
 
@@ -709,12 +709,13 @@ void BScreen::load_rc(void) {
   if (! config->getValue(screenstr + "opaqueMove", resource.opaque_move))
     resource.opaque_move = false;
 
-  if (! config->getValue(screenstr + "dropShadowFonts", resource.shadow_fonts))
-    resource.shadow_fonts = false;
-
   if (! config->getValue(screenstr + "antialiasFonts", resource.aa_fonts))
     resource.aa_fonts = true;
 
+  if (! resource.aa_fonts ||
+      ! config->getValue(screenstr + "dropShadowFonts", resource.shadow_fonts))
+    resource.shadow_fonts = false;
+
   if (! config->getValue(screenstr + "resizeZones", resource.resize_zones) ||
       (resource.resize_zones != 1 && resource.resize_zones != 2 &&
        resource.resize_zones != 4))
@@ -1753,6 +1754,9 @@ void BScreen::raiseWindows(Window *workspace_stack, unsigned int num) {
 #ifdef    XINERAMA
   ++bbwins;
 #endif // XINERAMA
+#ifdef    XFT
+  ++bbwins;
+#endif // XFT
 
   Window *session_stack = new
     Window[(num + workspacesList.size() + rootmenuList.size() +
@@ -1776,6 +1780,9 @@ void BScreen::raiseWindows(Window *workspace_stack, unsigned int num) {
 #ifdef    XINERAMA
   *(session_stack + i++) = configmenu->getXineramamenu()->getWindowID();
 #endif // XINERAMA
+#ifdef    XFT
+  *(session_stack + i++) = configmenu->getXftmenu()->getWindowID();
+#endif // XFT
   *(session_stack + i++) = configmenu->getWindowID();
 
   *(session_stack + i++) = slit->getMenu()->getDirectionmenu()->getWindowID();
@@ -1867,8 +1874,7 @@ void BScreen::propagateWindowName(const BlackboxWindow *bw) {
   if (bw->isIconic()) {
     iconmenu->changeItemLabel(bw->getWindowNumber(), bw->getIconTitle());
     iconmenu->update();
-  }
-  else {
+  } else {
     Clientmenu *clientmenu = getWorkspace(bw->getWorkspaceNumber())->getMenu();
     clientmenu->changeItemLabel(bw->getWindowNumber(), bw->getTitle());
     clientmenu->update();
@@ -1879,36 +1885,28 @@ void BScreen::propagateWindowName(const BlackboxWindow *bw) {
 }
 
 
-void BScreen::nextFocus(void) {
+void BScreen::nextFocus(void) const {
   BlackboxWindow *focused = blackbox->getFocusedWindow(),
     *next = focused;
 
-  if (focused) {
-    // if window is not on this screen, ignore it
-    if (focused->getScreen()->getScreenNumber() != getScreenNumber())
-      focused = (BlackboxWindow*) 0;
-  }
-
-  if (focused && current_workspace->getCount() > 1) {
-    // next is the next window to recieve focus, current is a place holder
-    BlackboxWindow *current;
+  if (focused &&
+      focused->getScreen()->getScreenNumber() == getScreenNumber() &&
+      current_workspace->getCount() > 1) {
     do {
-      current = next;
-      next = current_workspace->getNextWindowInList(current);
-    } while(! next->setInputFocus() && next != focused);
+      next = current_workspace->getNextWindowInList(next);
+    } while (next != focused && ! next->setInputFocus());
 
     if (next != focused)
       current_workspace->raiseWindow(next);
-  } else if (current_workspace->getCount() >= 1) {
+  } else if (current_workspace->getCount() > 0) {
     next = current_workspace->getTopWindowOnStack();
-
-    current_workspace->raiseWindow(next);
     next->setInputFocus();
+    current_workspace->raiseWindow(next);
   }
 }
 
 
-void BScreen::prevFocus(void) {
+void BScreen::prevFocus(void) const {
   BlackboxWindow *focused = blackbox->getFocusedWindow(),
     *next = focused;
 
@@ -1917,27 +1915,26 @@ void BScreen::prevFocus(void) {
     if (focused->getScreen()->getScreenNumber() != getScreenNumber())
       focused = (BlackboxWindow*) 0;
   }
-
-  if (focused && current_workspace->getCount() > 1) {
-    // next is the next window to recieve focus, current is a place holder
-    BlackboxWindow *current;
+  
+  if (focused &&
+      focused->getScreen()->getScreenNumber() == getScreenNumber() &&
+      current_workspace->getCount() > 1) {
+    // next is the next window to receive focus, current is a place holder
     do {
-      current = next;
-      next = current_workspace->getPrevWindowInList(current);
-    } while(! next->setInputFocus() && next != focused);
+      next = current_workspace->getPrevWindowInList(next);
+    } while (next != focused && ! next->setInputFocus());
 
     if (next != focused)
       current_workspace->raiseWindow(next);
-  } else if (current_workspace->getCount() >= 1) {
+  } else if (current_workspace->getCount() > 0) {
     next = current_workspace->getTopWindowOnStack();
-
-    current_workspace->raiseWindow(next);
     next->setInputFocus();
+    current_workspace->raiseWindow(next);
   }
 }
 
 
-void BScreen::raiseFocus(void) {
+void BScreen::raiseFocus(void) const {
   BlackboxWindow *focused = blackbox->getFocusedWindow();
   if (! focused)
     return;
@@ -2525,7 +2522,7 @@ void BScreen::updateAvailableArea(void) {
 }
 
 
-Workspace* BScreen::getWorkspace(unsigned int index) {
+Workspace* BScreen::getWorkspace(unsigned int index) const {
   assert(index < workspacesList.size());
   return workspacesList[index];
 }
This page took 0.025255 seconds and 4 git commands to generate.