Commit e757955e84bfb9e170ad69e986a9042e6a83851b
add `o` and `gg` as keyboard nav options
mix irving committed on 2/2/2017, 1:08:24 PMParent: d3402b2efe4dd4193ad3d0af357c92494b7da75a
Files changed
keyscroll.js | changed |
modules_basic/message/render.js | changed |
modules_core/tabs.js | changed |
keyscroll.js | ||
---|---|---|
@@ -24,9 +24,10 @@ | ||
24 | 24 … | } |
25 | 25 … | |
26 | 26 … | return function scroll(d) { |
27 | 27 … | selectChild(!curMsgEl ? container.firstChild |
28 … | + : d === 'first' ? container.firstChild | |
29 … | + : d < 0 ? curMsgEl.previousElementSibling || container.firstChild | |
28 | 30 … | : d > 0 ? curMsgEl.nextElementSibling || container.lastChild |
29 | - : d < 0 ? curMsgEl.previousElementSibling || container.firstChild | |
30 | 31 … | : curMsgEl) |
31 | 32 … | } |
32 | 33 … | } |
modules_basic/message/render.js | ||
---|---|---|
@@ -47,10 +47,10 @@ | ||
47 | 47 … | ]) |
48 | 48 … | return msgEl |
49 | 49 … | |
50 | 50 … | function navigateToMessageOnEnter (ev) { |
51 | - // on enter, hit first meta. | |
52 | - if(ev.keyCode == 13) { | |
51 … | + // on enter (or 'o'), hit first meta. | |
52 … | + if(ev.keyCode == 13 || ev.keyCode == 79) { | |
53 | 53 … | |
54 | 54 … | // unless in an input |
55 | 55 … | if (ev.target.nodeName === 'INPUT' |
56 | 56 … | || ev.target.nodeName === 'TEXTAREA') return |
modules_core/tabs.js | ||
---|---|---|
@@ -109,24 +109,35 @@ | ||
109 | 109 … | |
110 | 110 … | return false |
111 | 111 … | } |
112 | 112 … | |
113 … | + var gPressed = false | |
113 | 114 … | window.addEventListener('keydown', function (ev) { |
114 | 115 … | if (ev.target.nodeName === 'INPUT' || ev.target.nodeName === 'TEXTAREA') |
115 | 116 … | return |
117 … | + | |
118 … | + // scroll to top | |
119 … | + if (ev.keyCode == 71) { // g | |
120 … | + if (!gPressed) return gPressed = true | |
121 … | + | |
122 … | + var el = tabs.get(tabs.selected[0]).firstChild.scroll('first') | |
123 … | + gPressed = false | |
124 … | + } else { | |
125 … | + gPressed = false | |
126 … | + } | |
127 … | + | |
116 | 128 … | switch(ev.keyCode) { |
117 | - | |
118 | 129 … | // scroll through tabs |
119 | 130 … | case 72: // h |
120 | 131 … | return tabs.selectRelative(-1) |
121 | 132 … | case 76: // l |
122 | 133 … | return tabs.selectRelative(1) |
123 | 134 … | |
124 | 135 … | // scroll through messages |
125 | 136 … | case 74: // j |
126 | - return tabs.get(tabs.selected[0]).scroll(1) | |
137 … | + return tabs.get(tabs.selected[0]).firstChild.scroll(1) | |
127 | 138 … | case 75: // k |
128 | - return tabs.get(tabs.selected[0]).scroll(-1) | |
139 … | + return tabs.get(tabs.selected[0]).firstChild.scroll(-1) | |
129 | 140 … | |
130 | 141 … | // close a tab |
131 | 142 … | case 88: // x |
132 | 143 … | if (tabs.selected) { |
Built with git-ssb-web