summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-07-20 17:00:36 +0000
committerDana Jansens <danakj@orodu.net>2002-07-20 17:00:36 +0000
commit6d403febc6fe6c29728d013280756f7951f195db (patch)
tree140790c26ee6c1e717409637cdfeaccf5034ffb1
parent7d67f8557b3254aeb370a995f417c86606e8a67d (diff)
let you specify the class for cycling windows per class
-rw-r--r--util/epist/screen.cc14
-rw-r--r--util/epist/screen.hh3
2 files changed, 9 insertions, 8 deletions
diff --git a/util/epist/screen.cc b/util/epist/screen.cc
index 64dccf79..3f78c51f 100644
--- a/util/epist/screen.cc
+++ b/util/epist/screen.cc
@@ -186,19 +186,19 @@ void screen::handleKeypress(const XEvent &e) {
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::execCommand(const std::string &cmd) const {
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())
diff --git a/util/epist/screen.hh b/util/epist/screen.hh
index 1f0a3875..4c3a47c2 100644
--- a/util/epist/screen.hh
+++ b/util/epist/screen.hh
@@ -74,7 +74,8 @@ public:
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;