let you specify the class for cycling windows per class
Dana Jansens danakj@orodu.net
2 files changed,
9 insertions(+),
8 deletions(-)
M
util/epist/screen.cc
→
util/epist/screen.cc
@@ -186,19 +186,19 @@ cycleWindow(false, true);
return; case Action::nextWindowOfClass: - cycleWindow(true, false, true); + cycleWindow(true, false, true, it->string()); return; case Action::prevWindowOfClass: - cycleWindow(false, false, true); + cycleWindow(false, false, true, it->string()); return; case Action::nextWindowOfClassOnAllWorkspaces: - cycleWindow(true, true, true); + cycleWindow(true, true, true, it->string()); return; case Action::prevWindowOfClassOnAllWorkspaces: - cycleWindow(false, true, true); + cycleWindow(false, true, true, it->string()); return; case Action::changeWorkspace:@@ -393,15 +393,15 @@ }
void screen::cycleWindow(const bool forward, const bool alldesktops, - const bool sameclass) const { + const bool sameclass, const string &cn) const { assert(_managed); if (_clients.empty()) return; WindowList::const_iterator target = _active; - string classname; - if (sameclass && target != _clients.end()) + string classname = cn; + if (sameclass && classname.empty() && target != _clients.end()) classname = (*target)->appClass(); if (target == _clients.end())
M
util/epist/screen.hh
→
util/epist/screen.hh
@@ -74,7 +74,8 @@
void handleKeypress(const XEvent &e); void cycleWindow(const bool forward, const bool alldesktops = false, - const bool sameclass = false) const; + const bool sameclass = false, + const std::string &classname = "") const; void cycleWorkspace(const bool forward, const bool loop = true) const; void changeWorkspace(const int num) const; void toggleShaded(const Window win) const;