From: Scott Moynes Date: Wed, 21 Aug 2002 01:50:01 +0000 (+0000) Subject: changeWorkspaceHorz() now cycles X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=9be80896ef4bc12bfd6a1d218b976c06482b6e2b;p=chaz%2Fopenbox changeWorkspaceHorz() now cycles --- diff --git a/util/epist/screen.cc b/util/epist/screen.cc index 3b619e17..48eaaaf2 100644 --- a/util/epist/screen.cc +++ b/util/epist/screen.cc @@ -614,22 +614,30 @@ void screen::changeWorkspaceHorz(const int num) const { assert(_managed); const Config *conf = _epist->getConfig(); int width = conf->getNumberValue(Config::workspaceColumns); - + int wnum; + if (width > _num_desktops || width <= 0) return; if (num < 0) { if (_active_desktop % width != 0) changeWorkspace(_active_desktop - 1); - else - changeWorkspace(_active_desktop + width - 1); + else { + wnum = _active_desktop + width - 1; + if (wnum >= _num_desktops) + wnum = _num_desktops - 1; + } } else { - if (_active_desktop % width != width - 1) - changeWorkspace(_active_desktop + 1); + if (_active_desktop % width != width - 1) { + wnum = _active_desktop + 1; + if (wnum >= _num_desktops) + wnum = _num_desktops / width * width; + } else - changeWorkspace(_active_desktop - width + 1); + wnum = _active_desktop - width + 1; } + changeWorkspace(wnum); } void screen::grabKey(const KeyCode keyCode, const int modifierMask) const {