cycle windows was looping forever!
Dana Jansens danakj@orodu.net
1 files changed,
6 insertions(+),
2 deletions(-)
jump to
M
util/epist/screen.cc
→
util/epist/screen.cc
@@ -433,8 +433,6 @@ void screen::cycleWindow(const bool forward, const bool alldesktops,
const bool sameclass, const string &cn) const { assert(_managed); - if (_clients.empty()) return; - WindowList::const_iterator target = _active; string classname = cn;@@ -443,6 +441,8 @@ classname = (*target)->appClass();
if (target == _clients.end()) target = _clients.begin(); + + WindowList::const_iterator begin = target; do { if (forward) {@@ -454,6 +454,10 @@ if (target == _clients.begin())
target = _clients.end(); --target; } + + // no window to focus + if (target == begin) + return; } while (target == _clients.end() || (*target)->iconic() || (! alldesktops && (*target)->desktop() != _active_desktop) ||