#include "config.h"
+#include "screen.hh"
+#include "client.hh"
+#include "openbox.hh"
+#include "frame.hh"
+#include "bindings.hh"
+#include "python.hh"
+#include "otk/display.hh"
+#include "otk/property.hh"
+#include "otk/util.hh"
+
extern "C" {
#ifdef HAVE_UNISTD_H
# include <sys/types.h>
#define _(str) gettext(str)
}
-#include "screen.hh"
-#include "client.hh"
-#include "openbox.hh"
-#include "frame.hh"
-#include "bindings.hh"
-#include "python.hh"
-#include "otk/display.hh"
-#include "otk/property.hh"
-
#include <vector>
#include <algorithm>
#include <cstdio>
Screen::Screen(int screen)
- : _number(screen)
+ : _number(screen),
+ _config(screen)
{
assert(screen >= 0); assert(screen < ScreenCount(**otk::display));
_info = otk::display->screenInfo(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());
-
// set up notification of netwm support
changeSupportedAtoms();
otk::Property::atoms.net_desktop_geometry,
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);
- // 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(1); // set the hint
changeDesktop(0); // set the hint
// don't start in showing-desktop mode
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);