X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=util%2Fepist%2Fscreen.cc;h=64dccf797f54605e22eb7b9bc5b8fd3bda14b5a8;hb=7d67f8557b3254aeb370a995f417c86606e8a67d;hp=ce068122107ef624e6c7221c939e7bca7ede5f6f;hpb=843f9726ab6fd99fe3a2f285e6c85bd2880a275f;p=chaz%2Fopenbox diff --git a/util/epist/screen.cc b/util/epist/screen.cc index ce068122..64dccf79 100644 --- a/util/epist/screen.cc +++ b/util/epist/screen.cc @@ -25,6 +25,10 @@ #endif // HAVE_CONFIG_H extern "C" { +#ifdef HAVE_STDIO_H +# include +#endif // HAVE_STDIO_H + #ifdef HAVE_UNISTD_H # include # include @@ -204,6 +208,9 @@ void screen::handleKeypress(const XEvent &e) { case Action::execute: execCommand(it->string()); return; + + default: + break; } // these actions require an active window @@ -241,6 +248,10 @@ void screen::handleKeypress(const XEvent &e) { case Action::toggleshade: window->shade(! window->shaded()); return; + + default: + assert(false); // unhandled action type! + break; } } } @@ -389,6 +400,10 @@ void screen::cycleWindow(const bool forward, const bool alldesktops, WindowList::const_iterator target = _active; + string classname; + if (sameclass && target != _clients.end()) + classname = (*target)->appClass(); + if (target == _clients.end()) target = _clients.begin(); @@ -405,8 +420,8 @@ void screen::cycleWindow(const bool forward, const bool alldesktops, } while (target == _clients.end() || (*target)->iconic() || (! alldesktops && (*target)->desktop() != _active_desktop) || - (sameclass && _active != _clients.end() && - (*target)->appClass() != (*_active)->appClass())); + (sameclass && ! classname.empty() && + (*target)->appClass() != classname)); if (target != _clients.end()) (*target)->focus();