From ff448d61cf31554179ab6dceff5c3ce7d780a14a Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 5 Sep 2011 21:25:22 +0200 Subject: [PATCH 1/5] Support for up/right/down/left. close #267 --- 4chan_x.user.js | 8 ++++++++ changelog | 1 + script.coffee | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/4chan_x.user.js b/4chan_x.user.js index a3f99e9ee..e884983f4 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -876,6 +876,14 @@ } } else if ((48 <= kc && kc <= 57)) { key = String.fromCharCode(kc); + } else if (kc === 37) { + key = 'Left'; + } else if (kc === 38) { + key = 'Up'; + } else if (kc === 39) { + key = 'Right'; + } else if (kc === 40) { + key = 'Down'; } else if (kc === 27) { key = 'Esc'; } else if (kc === 8) { diff --git a/changelog b/changelog index 95095e226..541894964 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,7 @@ master - mayhem quote inlining default styling (by xat) + add up/down/right/left keybinding support 2.19.2 - mayhem diff --git a/script.coffee b/script.coffee index 28a836d9c..dcb10ebbb 100644 --- a/script.coffee +++ b/script.coffee @@ -626,6 +626,14 @@ keybinds = key = key.toLowerCase() else if 48 <= kc <= 57 #0-9 key = String.fromCharCode kc + else if kc is 37 + key = 'Left' + else if kc is 38 + key = 'Up' + else if kc is 39 + key = 'Right' + else if kc is 40 + key = 'Down' else if kc is 27 key = 'Esc' else if kc is 8 From a56f52c765b2bf966acbd9aa827c880f9f19c24b Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Tue, 6 Sep 2011 00:16:34 +0200 Subject: [PATCH 2/5] Manly switch for the manly keybinds. --- 4chan_x.user.js | 81 +++++++++++++++++++++++++++++++++++-------------- script.coffee | 41 ++++++++++++------------- 2 files changed, 79 insertions(+), 43 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index e884983f4..3a8f6a9d3 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -868,29 +868,66 @@ }, keyCode: function(e) { var kc; - kc = e.keyCode; - if ((65 <= kc && kc <= 90)) { - key = String.fromCharCode(kc); - if (!e.shiftKey) { - key = key.toLowerCase(); + key = (function() { + switch (kc = e.keyCode) { + case 8: + return ''; + case 27: + return 'Esc'; + case 37: + return 'Left'; + case 38: + return 'Up'; + case 39: + return 'Right'; + case 40: + return 'Down'; + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + if (e.shiftKey) { + return String.fromCharCode(kc); + } else { + return String.fromCharCode(kc).toLowerCase(); + } + break; + default: + return null; } - } else if ((48 <= kc && kc <= 57)) { - key = String.fromCharCode(kc); - } else if (kc === 37) { - key = 'Left'; - } else if (kc === 38) { - key = 'Up'; - } else if (kc === 39) { - key = 'Right'; - } else if (kc === 40) { - key = 'Down'; - } else if (kc === 27) { - key = 'Esc'; - } else if (kc === 8) { - key = ''; - } else { - key = null; - } + })(); if (key) { if (e.altKey) { key = 'alt+' + key; diff --git a/script.coffee b/script.coffee index dcb10ebbb..220d27bdc 100644 --- a/script.coffee +++ b/script.coffee @@ -619,27 +619,26 @@ keybinds = e.preventDefault() keyCode: (e) -> - kc = e.keyCode - if 65 <= kc <= 90 #A-Z - key = String.fromCharCode kc - if !e.shiftKey - key = key.toLowerCase() - else if 48 <= kc <= 57 #0-9 - key = String.fromCharCode kc - else if kc is 37 - key = 'Left' - else if kc is 38 - key = 'Up' - else if kc is 39 - key = 'Right' - else if kc is 40 - key = 'Down' - else if kc is 27 - key = 'Esc' - else if kc is 8 - key = '' - else - key = null + key = switch kc = e.keyCode + when 8 + '' + when 27 + 'Esc' + when 37 + 'Left' + when 38 + 'Up' + when 39 + 'Right' + when 40 + 'Down' + when 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 #0-9 and A-Z + if e.shiftKey + String.fromCharCode kc + else + String.fromCharCode(kc).toLowerCase() + else + null if key if e.altKey then key = 'alt+' + key if e.ctrlKey then key = 'ctrl+' + key From ccffa3a61f184908669ace49918c549f628e146d Mon Sep 17 00:00:00 2001 From: James Campos Date: Mon, 5 Sep 2011 15:35:39 -0700 Subject: [PATCH 3/5] refactor --- 4chan_x.user.js | 8 ++++---- script.coffee | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 3a8f6a9d3..f678f8853 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -867,7 +867,7 @@ return e.preventDefault(); }, keyCode: function(e) { - var kc; + var c, kc; key = (function() { switch (kc = e.keyCode) { case 8: @@ -892,6 +892,7 @@ case 55: case 56: case 57: + return String.fromCharCode(kc); case 65: case 66: case 67: @@ -918,10 +919,9 @@ case 88: case 89: case 90: + c = String.fromCharCode(kc); if (e.shiftKey) { - return String.fromCharCode(kc); - } else { - return String.fromCharCode(kc).toLowerCase(); + return c.toLowerCase(); } break; default: diff --git a/script.coffee b/script.coffee index 220d27bdc..c129103a7 100644 --- a/script.coffee +++ b/script.coffee @@ -632,11 +632,11 @@ keybinds = 'Right' when 40 'Down' - when 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 #0-9 and A-Z - if e.shiftKey - String.fromCharCode kc - else - String.fromCharCode(kc).toLowerCase() + when 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 #0-9 + String.fromCharCode kc + when 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 #A-Z + c = String.fromCharCode kc + c.toLowerCase() if e.shiftKey else null if key From f3f4ee0e555e0d87c8c97135dbcda53a92f20353 Mon Sep 17 00:00:00 2001 From: James Campos Date: Mon, 5 Sep 2011 15:36:40 -0700 Subject: [PATCH 4/5] hurr --- 4chan_x.user.js | 2 ++ script.coffee | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index f678f8853..b9b82cdf8 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -922,6 +922,8 @@ c = String.fromCharCode(kc); if (e.shiftKey) { return c.toLowerCase(); + } else { + return c; } break; default: diff --git a/script.coffee b/script.coffee index c129103a7..a0c425f3f 100644 --- a/script.coffee +++ b/script.coffee @@ -636,7 +636,7 @@ keybinds = String.fromCharCode kc when 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 #A-Z c = String.fromCharCode kc - c.toLowerCase() if e.shiftKey + if e.shiftKey then c.toLowerCase() else c else null if key From 6cd38a9273d8b5e9091f9783801a65e1d258ff60 Mon Sep 17 00:00:00 2001 From: James Campos Date: Mon, 5 Sep 2011 15:38:57 -0700 Subject: [PATCH 5/5] durr --- 4chan_x.user.js | 4 ++-- script.coffee | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index b9b82cdf8..423f265d6 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -921,9 +921,9 @@ case 90: c = String.fromCharCode(kc); if (e.shiftKey) { - return c.toLowerCase(); - } else { return c; + } else { + return c.toLowerCase(); } break; default: diff --git a/script.coffee b/script.coffee index a0c425f3f..919ed676a 100644 --- a/script.coffee +++ b/script.coffee @@ -636,7 +636,7 @@ keybinds = String.fromCharCode kc when 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 #A-Z c = String.fromCharCode kc - if e.shiftKey then c.toLowerCase() else c + if e.shiftKey then c else c.toLowerCase() else null if key