From: Dana Jansens Date: Tue, 23 Jul 2002 21:49:59 +0000 (+0000) Subject: cycle windows was looping forever! X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=f6a3cd61f814c9a5190acb4af3b339dd4cd08647;p=chaz%2Fopenbox cycle windows was looping forever! --- diff --git a/util/epist/screen.cc b/util/epist/screen.cc index 6b7b08a0..99de22b4 100644 --- a/util/epist/screen.cc +++ b/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 @@ void screen::cycleWindow(const bool forward, const bool alldesktops, if (target == _clients.end()) target = _clients.begin(); + + WindowList::const_iterator begin = target; do { if (forward) { @@ -454,6 +454,10 @@ void screen::cycleWindow(const bool forward, const bool alldesktops, target = _clients.end(); --target; } + + // no window to focus + if (target == begin) + return; } while (target == _clients.end() || (*target)->iconic() || (! alldesktops && (*target)->desktop() != _active_desktop) ||