all repos — openbox @ 7d67f8557b3254aeb370a995f417c86606e8a67d

openbox fork - make it a bit more like ryudo

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
commit

7d67f8557b3254aeb370a995f417c86606e8a67d

parent

ffd7021d22f534aa5974641e97911b24369d5896

2 files changed, 18 insertions(+), 3 deletions(-)

jump to
M util/epist/screen.ccutil/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.hhutil/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; }