From 2aa1e02beac7af5e5faadcd67fdb7b88e8b7e405 Mon Sep 17 00:00:00 2001 From: Tor Hveem Date: Wed, 19 Feb 2014 10:56:44 +0100 Subject: [PATCH 1/3] New keybinding: Alt-< to switch to previous buffer. Same key as WeeChat --- js/glowingbear.js | 10 ++++++++++ js/models.js | 12 +++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/js/glowingbear.js b/js/glowingbear.js index 4cb399c..bef5ce3 100644 --- a/js/glowingbear.js +++ b/js/glowingbear.js @@ -968,6 +968,16 @@ weechat.directive('inputBar', function() { return true; } + // Alt+< -> switch to previous buffer + if ($event.altKey && code === 60) { + var previousBuffer = models.getPreviousBuffer(); + if (previousBuffer) { + models.setActiveBuffer(previousBuffer.id); + $event.preventDefault(); + return true; + } + } + // Escape -> disconnect if (code === 27) { $event.preventDefault(); diff --git a/js/models.js b/js/models.js index 8c3cb38..7cb4a4b 100644 --- a/js/models.js +++ b/js/models.js @@ -329,6 +329,7 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) var BufferList = []; activeBuffer = null; + previousBuffer = null; unreads = 0; notifications = 0; @@ -368,6 +369,15 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) return activeBuffer; }; + /* + * Returns the previous current active buffer + * + * @return previous buffer object + */ + this.getPreviousBuffer = function() { + return previousBuffer; + }; + /* * Sets the buffer specifiee by bufferId as active. * Deactivates the previous current buffer. @@ -380,7 +390,7 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) key = 'id'; } - var previousBuffer = this.getActiveBuffer(); + previousBuffer = this.getActiveBuffer(); activeBuffer = _.find(this.model.buffers, function(buffer) { if (buffer[key] === bufferId) { From 2452858853cc35bf4abd5824445e1f2440ee4d6b Mon Sep 17 00:00:00 2001 From: Tor Hveem Date: Wed, 19 Feb 2014 11:28:48 +0100 Subject: [PATCH 2/3] Fix globals. Fix init --- js/models.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/js/models.js b/js/models.js index 7cb4a4b..ee38cd7 100644 --- a/js/models.js +++ b/js/models.js @@ -328,10 +328,8 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) var BufferList = []; - activeBuffer = null; - previousBuffer = null; - unreads = 0; - notifications = 0; + var activeBuffer = null; + var previousBuffer = null; this.model = { 'buffers': {} }; @@ -344,7 +342,7 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) this.addBuffer = function(buffer) { BufferList[buffer.id] = buffer; if (BufferList.length === 1) { - activeBuffer = buffer.id; + activeBuffer = buffer; } this.model.buffers[buffer.id] = buffer; }; From d14afb9c815b291e7fa224eef18a0f0d335f155b Mon Sep 17 00:00:00 2001 From: David Cormier Date: Wed, 19 Feb 2014 11:50:18 -0500 Subject: [PATCH 3/3] Add previous buffer shortcut to instructions --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index e26fd18..6285908 100644 --- a/index.html +++ b/index.html @@ -111,6 +111,7 @@
  • ALT+l: Focus on input bar
  • ALT-[0-9]: Focus on buffer
  • ALT-a: Focus on next buffer with activity
  • +
  • ALT-<: Switch to previous buffer
  • CTRL+G: Focus on buffer list filter
  • escape: disconnect
  • arrow keys: history navigation