From 7d67f8557b3254aeb370a995f417c86606e8a67d Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sat, 20 Jul 2002 16:52:52 +0000 Subject: [PATCH] make cycling by window class work properly, was using the app name instead of class also, make the code gcc 2.95 friendly --- util/epist/screen.cc | 19 +++++++++++++++++-- util/epist/window.hh | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) 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(); diff --git a/util/epist/window.hh b/util/epist/window.hh index 351ec566..91cd834d 100644 --- a/util/epist/window.hh +++ b/util/epist/window.hh @@ -71,7 +71,7 @@ public: inline unsigned int desktop() const { return _desktop; } inline const std::string &title() const { return _title; } inline const std::string &appName() const { return _app_name; } - inline const std::string &appClass() const { return _app_name; } + inline const std::string &appClass() const { return _app_class; } inline bool shaded() const { return _shaded; } inline bool iconic() const { return _iconic; } -- 2.45.2