]> Dogcows Code - chaz/openbox/blobdiff - src/Screen.cc
fix for changing window buttons order. destroy them properly when they no longer...
[chaz/openbox] / src / Screen.cc
index 73631fbf4479fbca71601e808b5f35132b64b9ab..75f8459af4adf49487dcf6dd9681bb6e959f9ada 100644 (file)
@@ -1,4 +1,3 @@
-#include <iostream.h>
 // Screen.cc for Openbox
 // Copyright (c) 2001 Sean 'Shaleh' Perry <shaleh@debian.org>
 // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
 #include <strstream>
 #include <string>
 #include <algorithm>
-using namespace std;
+#include <functional>
+using std::ends;
 
 static Bool running = True;
 
@@ -225,6 +225,7 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn),
   slit = NULL;
 #endif // SLIT
   toolbar = NULL;
+  current_workspace = (Workspace *) 0;
 
 #ifdef    HAVE_GETPID
   pid_t bpid = getpid();
@@ -483,9 +484,6 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn),
     }
   }
 
-  XSetInputFocus(getBaseDisplay().getXDisplay(),
-                 PointerRoot, None, CurrentTime);
-
   XFree(children);
   XFlush(getBaseDisplay().getXDisplay());
 }
@@ -915,7 +913,7 @@ XFontSet BScreen::createFontSet(const char *fontname) {
 
 void BScreen::setSloppyFocus(bool b) {
   resource.sloppy_focus = b;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".focusModel" << ends;
   config.setValue(s.str(),
                   (resource.sloppy_focus ?
@@ -927,7 +925,7 @@ void BScreen::setSloppyFocus(bool b) {
 
 void BScreen::setAutoRaise(bool a) {
   resource.auto_raise = a;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".focusModel" << ends;
   config.setValue(s.str(),
                   (resource.sloppy_focus ?
@@ -939,7 +937,7 @@ void BScreen::setAutoRaise(bool a) {
 
 void BScreen::setImageDither(bool d, bool reconfig) {
   image_control->setDither(d);
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".imageDither" << ends;
   config.setValue(s.str(), imageDither());
   if (reconfig)
@@ -950,7 +948,7 @@ void BScreen::setImageDither(bool d, bool reconfig) {
 
 void BScreen::setOpaqueMove(bool o) {
   resource.opaque_move = o;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".opaqueMove" << ends;
   config.setValue(s.str(), resource.opaque_move);
   s.rdbuf()->freeze(0);
@@ -959,7 +957,7 @@ void BScreen::setOpaqueMove(bool o) {
 
 void BScreen::setFullMax(bool f) {
   resource.full_max = f;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".fullMaximization" << ends;
   config.setValue(s.str(), resource.full_max);
   s.rdbuf()->freeze(0);
@@ -968,7 +966,7 @@ void BScreen::setFullMax(bool f) {
 
 void BScreen::setFocusNew(bool f) {
   resource.focus_new = f;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".focusNewWindows" << ends;
   config.setValue(s.str(), resource.focus_new);
   s.rdbuf()->freeze(0);
@@ -977,7 +975,7 @@ void BScreen::setFocusNew(bool f) {
 
 void BScreen::setFocusLast(bool f) {
   resource.focus_last = f;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".focusLastWindow" << ends;
   config.setValue(s.str(), resource.focus_last);
   s.rdbuf()->freeze(0);
@@ -986,7 +984,7 @@ void BScreen::setFocusLast(bool f) {
 
 void BScreen::setWindowZones(int z) {
   resource.zones = z;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".windowZones" << ends;
   config.setValue(s.str(), resource.zones);
   s.rdbuf()->freeze(0);
@@ -995,7 +993,7 @@ void BScreen::setWindowZones(int z) {
 
 void BScreen::setWorkspaceCount(int w) {
   resource.workspaces = w;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".workspaces" << ends;
   config.setValue(s.str(), resource.workspaces);
   s.rdbuf()->freeze(0);
@@ -1004,7 +1002,7 @@ void BScreen::setWorkspaceCount(int w) {
 
 void BScreen::setPlacementPolicy(int p) {
   resource.placement_policy = p;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".windowPlacement" << ends;
   const char *placement;
   switch (resource.placement_policy) {
@@ -1023,7 +1021,7 @@ void BScreen::setPlacementPolicy(int p) {
 
 void BScreen::setEdgeSnapThreshold(int t) {
   resource.edge_snap_threshold = t;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".edgeSnapThreshold" << ends;
   config.setValue(s.str(), resource.edge_snap_threshold);
   s.rdbuf()->freeze(0);
@@ -1032,7 +1030,7 @@ void BScreen::setEdgeSnapThreshold(int t) {
 
 void BScreen::setRowPlacementDirection(int d) {
   resource.row_direction = d;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".rowPlacementDirection" << ends;
   config.setValue(s.str(),
                   resource.row_direction == LeftRight ?
@@ -1043,7 +1041,7 @@ void BScreen::setRowPlacementDirection(int d) {
 
 void BScreen::setColPlacementDirection(int d) {
   resource.col_direction = d;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".colPlacementDirection" << ends;
   config.setValue(s.str(),
                   resource.col_direction == TopBottom ?
@@ -1071,7 +1069,7 @@ void BScreen::setStrftimeFormat(const char *f) {
     delete [] resource.strftime_format;
 
   resource.strftime_format = bstrdup(f);
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".strftimeFormat" << ends;
   config.setValue(s.str(), resource.strftime_format);
   s.rdbuf()->freeze(0);
@@ -1081,7 +1079,7 @@ void BScreen::setStrftimeFormat(const char *f) {
 
 void BScreen::setDateFormat(int f) {
   resource.date_format = f;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".dateFormat" << ends;
   config.setValue(s.str(), resource.date_format == B_EuropeanDate ?
                   "European" : "American");
@@ -1091,7 +1089,7 @@ void BScreen::setDateFormat(int f) {
 
 void BScreen::setClock24Hour(Bool c) {
   resource.clock24hour = c;
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".clockFormat" << ends;
   config.setValue(s.str(), resource.clock24hour ? 24 : 12);
   s.rdbuf()->freeze(0);
@@ -1105,7 +1103,7 @@ void BScreen::setHideToolbar(bool b) {
     getToolbar()->unMapToolbar();
   else
     getToolbar()->mapToolbar();
-  ostrstream s;
+  std::ostrstream s;
   s << "session.screen" << getScreenNumber() << ".hideToolbar" << ends;
   config.setValue(s.str(), resource.hide_toolbar ? "True" : "False");
   s.rdbuf()->freeze(0);
@@ -1113,7 +1111,7 @@ void BScreen::setHideToolbar(bool b) {
 
 
 void BScreen::saveWorkspaceNames() {
-  ostrstream rc, names;
+  std::ostrstream rc, names;
 
   wkspList::iterator it;
   wkspList::iterator last = workspacesList.end() - 1;
@@ -1155,11 +1153,16 @@ void BScreen::save() {
   setClock24Hour(resource.clock24hour);
 #endif // HAVE_STRFTIME
   setHideToolbar(resource.hide_toolbar);
+    
+  toolbar->save();
+#ifdef    SLIT
+  slit->save();
+#endif // SLIT
 }
 
 
 void BScreen::load() {
-  ostrstream rscreen, rname, rclass;
+  std::ostrstream rscreen, rname, rclass;
   std::string s;
   bool b;
   long l;
@@ -1245,9 +1248,9 @@ void BScreen::load() {
   rname << rscreen.str() << "workspaceNames" << ends;
   rclass << rscreen.str() << "WorkspaceNames" << ends;
   if (config.getValue(rname.str(), rclass.str(), s)) {
-    string::const_iterator it = s.begin(), end = s.end();
+    std::string::const_iterator it = s.begin(), end = s.end();
     while(1) {
-      string::const_iterator tmp = it;// current string.begin()
+      std::string::const_iterator tmp = it;// current string.begin()
       it = std::find(tmp, end, ',');       // look for comma between tmp and end
       std::string name(tmp, it);           // name = s[tmp:it]
       addWorkspaceName(name.c_str());
@@ -1541,14 +1544,12 @@ void BScreen::reconfigure(void) {
   slit->reconfigure();
 #endif // SLIT
 
-  wkspList::iterator wit;
-  for (wit = workspacesList.begin(); wit != workspacesList.end(); ++wit)
-    (*wit)->reconfigure();
+  std::for_each(workspacesList.begin(), workspacesList.end(),
+                std::mem_fun(&Workspace::reconfigure));
 
-  winList::iterator iit;
-  for (iit = iconList.begin(); iit != iconList.end(); ++iit)
-    if ((*iit)->validateClient())
-      (*iit)->reconfigure();
+  for (winList::iterator it = iconList.begin(); it != iconList.end(); ++it)
+    if ((*it)->validateClient())
+      (*it)->reconfigure();
 
   image_control->timeout();
 }
@@ -2055,6 +2056,7 @@ void BScreen::updateNetizenWindowFocus(void) {
     (*it)->sendWindowFocus(f);
 }
 
+
 void BScreen::updateNetizenWindowAdd(Window w, unsigned long p) {
   netList::iterator it;
   for (it = netizenList.begin(); it != netizenList.end(); ++it)
@@ -2737,9 +2739,8 @@ void BScreen::shutdown(void) {
   XSelectInput(getBaseDisplay().getXDisplay(), getRootWindow(), NoEventMask);
   XSync(getBaseDisplay().getXDisplay(), False);
 
-  wkspList::iterator it;
-  for (it = workspacesList.begin(); it != workspacesList.end(); ++it)
-    (*it)->shutdown();
+  std::for_each(workspacesList.begin(), workspacesList.end(),
+                std::mem_fun(&Workspace::shutdown));
 
   while (!iconList.empty())
     iconList.front()->restore();
This page took 0.030554 seconds and 4 git commands to generate.