diff --git a/js/glowingbear.js b/js/glowingbear.js index f87b139..0bc3ca7 100644 --- a/js/glowingbear.js +++ b/js/glowingbear.js @@ -819,12 +819,18 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', // direction is +1 for next buffer, -1 for previous buffer var sortedBuffers = _.sortBy($scope.getBuffers(), $rootScope.predicate); var activeBuffer = models.getActiveBuffer(); - var index = sortedBuffers.indexOf(activeBuffer); - if (index >= 0) { - var newBuffer = sortedBuffers[index + direction]; - if (newBuffer) { - $scope.setActiveBuffer(newBuffer.id); - } + var index = sortedBuffers.indexOf(activeBuffer) + direction; + var newBuffer; + + // look for next non-hidden buffer + while (index >= 0 && index < sortedBuffers.length && + (!newBuffer || newBuffer.hidden)) { + newBuffer = sortedBuffers[index]; + index += direction; + } + + if (!!newBuffer) { + $scope.setActiveBuffer(newBuffer.id); } };