+2011-02-17 Ojan Vafai <ojan@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ use shift+j/k to focus next/previous line
+ https://bugs.webkit.org/show_bug.cgi?id=54723
+
+ Tested on a large Hyatt change to confirm it performed fine.
+ (https://bugs.webkit.org/attachment.cgi?id=82533&action=review)
+
+ * code-review.js:
+
2011-02-17 Ojan Vafai <ojan@chromium.org>
Reviewed by Adam Barth.
}
function focusNext(filter, direction) {
- var focusable_nodes = $('a,.frozenComment,.previousComment,.DiffBlock,.overallComments').filter(function() {
+ var focusable_nodes = $('a,.Line,.frozenComment,.previousComment,.DiffBlock,.overallComments').filter(function() {
return !$(this).hasClass('DiffBlock') || $('.add,.remove', this).size();
});
var kCharCodeForP = 'p'.charCodeAt(0);
var kCharCodeForJ = 'j'.charCodeAt(0);
var kCharCodeForK = 'k'.charCodeAt(0);
+ var kCharCodeForCapitalJ = 'J'.charCodeAt(0);
+ var kCharCodeForCapitalK = 'K'.charCodeAt(0);
var kCharCodeForEnter = '\r'.charCodeAt(0);
function isComment(node) {
function isDiffBlock(node) {
return node.hasClass('DiffBlock');
}
+
+ function isLine(node) {
+ return node.hasClass('Line');
+ }
$('textarea').live('keydown', function(e) {
var escape_key_code = 27;
case kCharCodeForK:
handled = focusNext(isDiffBlock, DIRECTION.BACKWARD);
break;
+
+ case kCharCodeForCapitalJ:
+ handled = focusNext(isLine, DIRECTION.FORWARD);
+ break;
+
+ case kCharCodeForCapitalK:
+ handled = focusNext(isLine, DIRECTION.BACKWARD);
+ break;
case kCharCodeForEnter:
handled = handleEnterKeyPress();