make cycling by window class work properly, was using the app name instead of class also, make the code gcc 2.95 friendly
Dana Jansens danakj@orodu.net
2 files changed,
18 insertions(+),
3 deletions(-)
M
util/epist/screen.cc
→
util/epist/screen.cc
@@ -25,6 +25,10 @@ # include "../../config.h"
#endif // HAVE_CONFIG_H extern "C" { +#ifdef HAVE_STDIO_H +# include <stdio.h> +#endif // HAVE_STDIO_H + #ifdef HAVE_UNISTD_H # include <sys/types.h> # include <unistd.h>@@ -204,6 +208,9 @@
case Action::execute: execCommand(it->string()); return; + + default: + break; } // these actions require an active window@@ -241,6 +248,10 @@
case Action::toggleshade: window->shade(! window->shaded()); return; + + default: + assert(false); // unhandled action type! + break; } } }@@ -389,6 +400,10 @@ if (_clients.empty()) return;
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 @@ }
} 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();
M
util/epist/window.hh
→
util/epist/window.hh
@@ -71,7 +71,7 @@
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; }