X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fmain.cc;h=13047780fafa0175b9715a31609d54b12d0d7147;hb=d2a1ecb1b50902d262a74e347203a36a961e1d92;hp=e59749aa6cfc22184a7e05f975f3b3626d53241b;hpb=e2069b5792a80ba8ccfd03c9d1bdd5e364dbee10;p=chaz%2Fopenbox diff --git a/src/main.cc b/src/main.cc index e59749aa..13047780 100644 --- a/src/main.cc +++ b/src/main.cc @@ -4,19 +4,9 @@ @brief Main entry point for the application */ -#ifdef HAVE_CONFIG_H -# include "../config.h" -#endif // HAVE_CONFIG_H +#include "config.h" extern "C" { -#ifdef HAVE_LOCALE_H -# include -#endif // HAVE_LOCALE_H - -#ifdef HAVE_STDIO_H -# include -#endif // HAVE_STDIO_H - #ifdef HAVE_UNISTD_H # include # include @@ -28,6 +18,9 @@ extern "C" { #include "openbox.hh" #include "otk/util.hh" +#include +#include + int main(int argc, char **argv) { // initialize the locale if (!setlocale(LC_ALL, "")) @@ -36,11 +29,14 @@ int main(int argc, char **argv) { bind_textdomain_codeset(PACKAGE, "UTF-8"); textdomain(PACKAGE); - ob::Openbox openbox(argc, argv); - openbox.eventLoop(); + ob::Openbox *openbox = new ob::Openbox(argc, argv); + openbox->eventLoop(); - if (openbox.doRestart()) { - const std::string &prog = openbox.restartProgram(); + if (openbox->doRestart()) { + std::string prog = openbox->restartProgram(); + + delete openbox; // shutdown the current one! + if (!prog.empty()) { execl("/bin/sh", "/bin/sh", "-c", prog.c_str(), NULL); perror(prog.c_str()); @@ -50,4 +46,6 @@ int main(int argc, char **argv) { execvp(argv[0], argv); execvp(otk::basename(argv[0]).c_str(), argv); } + + delete openbox; // shutdown }