X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fopenbox.cc;h=0b3148e8e129c4801cb9d1cec99679784e517fee;hb=c34f2a5241fba850f3e48a08ebeff3190c6dc9d5;hp=5b4ceedceea368bfd80593434c3e5cfe3aef47ab;hpb=77ab46d1e35d48e73c201e6de88b26f48bb06425;p=chaz%2Fopenbox diff --git a/src/openbox.cc b/src/openbox.cc index 5b4ceedc..0b3148e8 100644 --- a/src/openbox.cc +++ b/src/openbox.cc @@ -51,7 +51,7 @@ extern "C" { namespace ob { -Openbox *Openbox::instance = (Openbox *) 0; +Openbox *openbox = (Openbox *) 0; void Openbox::signalHandler(int signal) @@ -59,7 +59,7 @@ void Openbox::signalHandler(int signal) switch (signal) { case SIGUSR1: printf("Caught SIGUSR1 signal. Restarting.\n"); - instance->restart(); + openbox->restart(); break; case SIGHUP: @@ -67,7 +67,7 @@ void Openbox::signalHandler(int signal) case SIGTERM: case SIGPIPE: printf("Caught signal %d. Exiting.\n", signal); - instance->shutdown(); + openbox->shutdown(); break; case SIGFPE: @@ -86,7 +86,7 @@ Openbox::Openbox(int argc, char **argv) _state = State_Starting; // initializing everything - Openbox::instance = this; + openbox = this; _displayreq = (char*) 0; _argv = argv; @@ -319,10 +319,12 @@ void Openbox::showHelp() void Openbox::eventLoop() { - while (!_shutdown) { - _timermanager.fire(!_sync); // wait if not in sync mode + while (true) { dispatchEvents(); // from otk::EventDispatcher XFlush(otk::Display::display); // flush here before we go wait for timers + // don't wait if we're to shutdown + if (_shutdown) break; + _timermanager.fire(!_sync); // wait if not in sync mode } } @@ -376,7 +378,7 @@ void Openbox::setFocusedClient(Client *c) // call the python Focus callbacks EventData data(_focused_screen->number(), c, EventFocus, 0); - Openbox::instance->bindings()->fireEvent(&data); + _bindings->fireEvent(&data); } void Openbox::execute(int screen, const std::string &bin)