#include <cstdio>
#include <cstdlib>
+namespace otk {
+extern void initialize();
+extern void destroy();
+}
+
namespace ob {
Openbox *openbox = (Openbox *) 0;
Openbox::Openbox(int argc, char **argv)
: otk::EventDispatcher(),
- otk::EventHandler(),
- _display()
+ otk::EventHandler()
{
struct sigaction action;
openbox = this;
- _displayreq = (char*) 0;
_argv = argv;
_shutdown = false;
_restart = false;
parseCommandLine(argc, argv);
+ otk::initialize();
+
XSynchronize(**otk::display, _sync);
// set up the signal handler
// anything that died while we were restarting won't give us a SIGCHLD
while (waitpid(-1, NULL, WNOHANG) > 0);
- otk::RenderColor::initialize();
- otk::RenderStyle::initialize();
- otk::Timer::initialize();
- otk::Property::initialize();
_actions = new Actions();
_bindings = new Bindings();
CurrentTime);
XSync(**otk::display, false);
- // this tends to block.. i honestly am not sure why. causing an x error in
- // the shutdown process unblocks it. blackbox simply did a ::exit(0), so
- // all im gunna do is the same.
- //delete _display;
-
- otk::Timer::destroy();
- otk::RenderStyle::destroy();
- otk::RenderColor::destroy();
+ otk::destroy();
}
for (int i = 1; i < argc; ++i) {
std::string arg(argv[i]);
- if (arg == "-display") {
- if (++i >= argc)
- err = true;
- else
- _displayreq = argv[i];
- } else if (arg == "-rc") {
+ if (arg == "-rc") {
if (++i >= argc)
err = true;
else
// sometimes this is called with the already-focused window, this is
// important for the python scripts to work (eg, c = 0 twice). don't just
// return if _focused_client == c
-
+
assert(_focused_screen);
// uninstall the old colormap