Aleksander Machniak
2013-10-30 0fb8940d066fc6ecac5a8c97385380c152b69acd
Merge pull request #151 from cmcnulty/new-key-navigation

Spacebar for message selection, left/right arrow for thread collapse/expand
1 files modified
34 ■■■■■ changed files
program/js/list.js 34 ●●●●● patch | view | raw | blame | history
program/js/list.js
@@ -856,8 +856,14 @@
{
  var row = this.get_first_row();
  if (row) {
    this.select_row(row, mod_key, false);
    this.scrollto(row);
    if (mod_key) {
      this.shift_select(row, mod_key);
      this.triggerEvent('select');
      this.scrollto(row);
    }
    else {
      this.select(row);
    }
  }
},
@@ -869,8 +875,14 @@
{
  var row = this.get_last_row();
  if (row) {
    this.select_row(row, mod_key, false);
    this.scrollto(row);
    if (mod_key) {
      this.shift_select(row, mod_key);
      this.triggerEvent('select');
      this.scrollto(row);
    }
    else {
      this.select(row);
    }
  }
},
@@ -1124,10 +1136,13 @@
      // Stop propagation so that the browser doesn't scroll
      rcube_event.cancel(e);
      return this.use_arrow_key(keyCode, mod_key);
    case 61:
    case 107: // Plus sign on a numeric keypad (fc11 + firefox 3.5.2)
    case 109:
    case 32:
      rcube_event.cancel(e);
      return this.select_row(this.last_selected, mod_key, true);
    case 37: // Left arrow key
    case 39: // Right arrow key
    case 107: // Plus sign on a numeric keypad
    case 109: // Minus sign on a numeric keypad
      // Stop propagation
      rcube_event.cancel(e);
      var ret = this.use_plusminus_key(keyCode, mod_key);
@@ -1196,11 +1211,8 @@
  if (!selected_row || !selected_row.has_children)
    return;
  if (keyCode == 32)
    keyCode = selected_row.expanded ? 109 : 61;
  // expand
  if (keyCode == 61 || keyCode == 107) {
  if (keyCode == 39 || keyCode == 107) {
    if (selected_row.expanded)
      return;