From fe0c070a6c496b7e039b238b3422fd2e2b4f1a15 Mon Sep 17 00:00:00 2001 From: Lorenz H-S Date: Mon, 23 Dec 2013 22:34:21 +0100 Subject: [PATCH] Only scroll when at the bottom of the buffer I think this behaviour is a lot more natural. Because it no longer "scrolls to bottom", I also renamed it. --- js/websockets.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/websockets.js b/js/websockets.js index 901edad..c0476af 100644 --- a/js/websockets.js +++ b/js/websockets.js @@ -35,7 +35,7 @@ weechat.factory('handlers', ['$rootScope', 'models', 'plugins', function($rootSc } if (buffer.active) { - $rootScope.scrollToBottom(); + $rootScope.scrollWithBuffer(); } if (!initial && !buffer.active) { @@ -480,7 +480,7 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', } $rootScope.$on('activeBufferChanged', function() { - $rootScope.scrollToBottom(); + $rootScope.scrollWithBuffer(); var ab = models.getActiveBuffer(); $rootScope.pageTitle = ab.shortName + ' | ' + ab.title; @@ -577,13 +577,13 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', } }; - $rootScope.scrollToBottom = function() { + $rootScope.scrollWithBuffer = function() { // FIXME doesn't work if the settimeout runs without a short delay var scroll = function() { var bl = document.getElementById('bufferlines'); var sTop = bl.scrollTop; var sVal = bl.scrollHeight - bl.clientHeight; - if(sTop < sVal) { + if(sTop == sVal) { bl.scrollTop = sVal; } };