let you specify the class for cycling windows per class
This commit is contained in:
parent
7d67f8557b
commit
6d403febc6
2 changed files with 9 additions and 8 deletions
|
@ -186,19 +186,19 @@ void screen::handleKeypress(const XEvent &e) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Action::nextWindowOfClass:
|
case Action::nextWindowOfClass:
|
||||||
cycleWindow(true, false, true);
|
cycleWindow(true, false, true, it->string());
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Action::prevWindowOfClass:
|
case Action::prevWindowOfClass:
|
||||||
cycleWindow(false, false, true);
|
cycleWindow(false, false, true, it->string());
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Action::nextWindowOfClassOnAllWorkspaces:
|
case Action::nextWindowOfClassOnAllWorkspaces:
|
||||||
cycleWindow(true, true, true);
|
cycleWindow(true, true, true, it->string());
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Action::prevWindowOfClassOnAllWorkspaces:
|
case Action::prevWindowOfClassOnAllWorkspaces:
|
||||||
cycleWindow(false, true, true);
|
cycleWindow(false, true, true, it->string());
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Action::changeWorkspace:
|
case Action::changeWorkspace:
|
||||||
|
@ -393,15 +393,15 @@ void screen::execCommand(const std::string &cmd) const {
|
||||||
|
|
||||||
|
|
||||||
void screen::cycleWindow(const bool forward, const bool alldesktops,
|
void screen::cycleWindow(const bool forward, const bool alldesktops,
|
||||||
const bool sameclass) const {
|
const bool sameclass, const string &cn) const {
|
||||||
assert(_managed);
|
assert(_managed);
|
||||||
|
|
||||||
if (_clients.empty()) return;
|
if (_clients.empty()) return;
|
||||||
|
|
||||||
WindowList::const_iterator target = _active;
|
WindowList::const_iterator target = _active;
|
||||||
|
|
||||||
string classname;
|
string classname = cn;
|
||||||
if (sameclass && target != _clients.end())
|
if (sameclass && classname.empty() && target != _clients.end())
|
||||||
classname = (*target)->appClass();
|
classname = (*target)->appClass();
|
||||||
|
|
||||||
if (target == _clients.end())
|
if (target == _clients.end())
|
||||||
|
|
|
@ -74,7 +74,8 @@ public:
|
||||||
void handleKeypress(const XEvent &e);
|
void handleKeypress(const XEvent &e);
|
||||||
|
|
||||||
void cycleWindow(const bool forward, const bool alldesktops = false,
|
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 cycleWorkspace(const bool forward, const bool loop = true) const;
|
||||||
void changeWorkspace(const int num) const;
|
void changeWorkspace(const int num) const;
|
||||||
void toggleShaded(const Window win) const;
|
void toggleShaded(const Window win) const;
|
||||||
|
|
Loading…
Reference in a new issue