]> Dogcows Code - chaz/openbox/blobdiff - src/screen.cc
Add the "obsetroot" tool. Use it to set the root background.
[chaz/openbox] / src / screen.cc
index 039d82050fa770004a9f2ff93ef877ba7353d33d..6eaa5cc577190461a0ca2fd6022b5705ddfe758e 100644 (file)
@@ -10,6 +10,7 @@
 #include "python.hh"
 #include "otk/display.hh"
 #include "otk/property.hh"
+#include "otk/util.hh"
 
 extern "C" {
 #ifdef    HAVE_UNISTD_H
@@ -66,23 +67,11 @@ Screen::Screen(int screen)
   XDefineCursor(**otk::display, _info->rootWindow(),
                 openbox->cursors().session);
 
-  // XXX: initialize the screen's style
-  /*
-  otk::ustring stylepath;
-  python_get_string("THEME", &stylepath);
-  otk::Configuration sconfig(false);
-  sconfig.setFile(otk::expandTilde(stylepath.c_str()));
-  if (!sconfig.load()) {
-    sconfig.setFile(otk::expandTilde(DEFAULTSTYLE));
-    if (!sconfig.load()) {
-      printf(_("Unable to load default style: %s. Aborting.\n"), DEFAULTSTYLE);
-      ::exit(1);
-    }
-  }
-  _style.load(sconfig);
-  */
-  otk::display->renderControl(_number)->
-    drawRoot(*otk::RenderStyle::style(_number)->rootColor());
+  // initialize the screen's style
+  otk::RenderStyle::setStyle(_number, _config.theme);
+  // draw the root window
+  otk::bexec("obsetroot " + otk::RenderStyle::style(_number)->rootArgs(),
+             _info->displayString());
 
   // set up notification of netwm support
   changeSupportedAtoms();
@@ -95,19 +84,15 @@ Screen::Screen(int screen)
                      otk::Property::atoms.cardinal, geometry, 2);
 
   // Set the net_desktop_names property
-  std::vector<otk::ustring> names;
-  python_get_stringlist("DESKTOP_NAMES", &names);
   otk::Property::set(_info->rootWindow(),
                      otk::Property::atoms.net_desktop_names,
-                     otk::Property::utf8, names);
+                     otk::Property::utf8, _config.desktop_names);
   // the above set() will cause the updateDesktopNames to fire right away so
   // we have a list of desktop names
 
   _desktop = 0;
-  
-  if (!python_get_long("NUMBER_OF_DESKTOPS", (long*)&_num_desktops))
-    _num_desktops = 1;
-  changeNumDesktops(_num_desktops); // set the hint
+
+  changeNumDesktops(_config.num_desktops); // set the hint
 
   changeDesktop(0); // set the hint
 
@@ -686,7 +671,7 @@ void Screen::unmanageWindow(Client *client)
   client->_modal = false;
   
   // unfocus the client (calls the focus callbacks)
-  client->unfocus();
+  if (client->focused()) client->unfocus();
 
 #ifdef DEBUG
   printf("Unmanaged window 0x%lx frame 0x%lx\n", client->window(), framewin);
This page took 0.024218 seconds and 4 git commands to generate.