diff --git a/index.html b/index.html index 356950a..3b66ba9 100644 --- a/index.html +++ b/index.html @@ -124,10 +124,10 @@
  • ALT-a: Focus on next buffer with activity
  • ALT-<: Switch to previous active buffer
  • ALT-g: Focus on buffer list filter
  • -
  • Esc-Esc: disconnect (double-tap)
  • -
  • Arrow keys: history navigation
  • -
  • Tab key: nick complete
  • -
  • The following readline/emacs style keybindings works: Ctrl-a, Ctrl-e, Ctrl-u, Ctrl-k, Ctrl-w
  • +
  • Esc-Esc: Disconnect (double-tap)
  • +
  • Arrow keys: Navigate history
  • +
  • Tab key: Complete nick
  • +
  • The following readline/emacs style keybindings can be enabled with a setting: Ctrl-a, Ctrl-e, Ctrl-u, Ctrl-k, Ctrl-w
  • @@ -370,6 +370,16 @@ $ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out rel +
  • +
    +
    + +
    +
    +
  • diff --git a/js/glowingbear.js b/js/glowingbear.js index 75d28b5..45bd939 100644 --- a/js/glowingbear.js +++ b/js/glowingbear.js @@ -869,6 +869,8 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', $store.bind($scope, "fontfamily", getClassStyle('monospace', 'fontFamily')); // Save setting for font size $store.bind($scope, "fontsize", getClassStyle('monospace', 'fontSize')); + // Save setting for readline keybindings + $store.bind($scope, "readlineBindings", false); // Save setting for displaying embeds in rootScope so it can be used from service $rootScope.visible = $scope.noembed === false; @@ -949,6 +951,11 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', $scope.$watch('fontsize', function() { changeClassStyle('monospace', 'fontSize', $scope.fontsize); }); + // Crude scoping hack. The keypress listener does not live in the same scope as + // the checkbox, so we need to transfer this between scopes here. + $scope.$watch('readlineBindings', function() { + $rootScope.readlineBindings = $scope.readlineBindings; + }); $scope.setActiveBuffer = function(bufferId, key) { // If we are on mobile we need to collapse the menu on sidebar clicks @@ -1533,7 +1540,9 @@ weechat.directive('inputBar', function() { return true; } // Some readline keybindings - if ($event.ctrlKey && !$event.altKey && !$event.shiftKey && document.activeElement === inputNode) { + if ($rootScope.readlineBindings && $event.ctrlKey && !$event.altKey && !$event.shiftKey && document.activeElement === inputNode) { + // get current caret position + var caretPos = inputNode.selectionStart; // Ctrl-a if (code == 65) { inputNode.setSelectionRange(0, 0);