_cursors.ur_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ur_angle);
// initialize all the screens
- _screens.push_back(new OBScreen(0));
- _screens[0]->loadStyle(_config);
+ OBScreen *screen;
+ screen = new OBScreen(0, _config);
+ if (screen->managed()) {
+ _screens.push_back(screen);
+ _screens[0]->manageExisting();
+ // XXX: "change to" the first workspace on the screen to initialize stuff
+ } else
+ delete screen;
+
+ if (_screens.empty()) {
+ printf(_("No screens were found without a window manager. Exiting.\n"));
+ ::exit(1);
+ }
_state = State_Normal; // done starting
}
{
_state = State_Exiting; // time to kill everything
- // unmanage all windows
- while (!_clients.empty())
- _xeventhandler.unmanageWindow(_clients.begin()->second);
-
std::for_each(_screens.begin(), _screens.end(), otk::PointerAssassin());
// close the X display