Files
gitx/html/keyboardNavigation.js
T
2008-09-19 15:03:51 +02:00

56 lines
1.2 KiB
JavaScript

var scrollToCenter = function(element) {
var pos = element.cumulativeOffset();
window.scrollTo(pos[0], pos[1] - 100);
}
var handleKeys = function(event) {
if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey)
return;
if (event.keyCode == 74)
return changeHunk(true);
else if (event.keyCode == 75)
return changeHunk(false);
else if (event.keyCode == 86) {// 'v'
showDiffs();
return false;
}
return true;
}
var handleKeyFromCocoa = function(key) {
if (key == 'j')
changeHunk(true);
else if (key == 'k')
changeHunk(false);
else if (key == 'v')
showDiffs();
else if (key == 'c')
Controller.copySource();
}
var changeHunk = function(next) {
var hunks = $A(document.getElementsByClassName("hunkheader"));
if (hunks.length == 0)
return;
var currentHunk = document.getElementById("CurrentHunk");
var newHunk;
if (currentHunk && hunks.indexOf(currentHunk) >= 0) {
currentHunk.id = null;
if (next)
newHunk = hunks[hunks.indexOf(currentHunk) + 1];
else
newHunk = hunks[hunks.indexOf(currentHunk) - 1];
}
if (!newHunk)
newHunk = hunks[0];
newHunk.id = 'CurrentHunk';
scrollToCenter(newHunk);
return false;
}
document.onkeydown = function(event) {
return handleKeys(event);
};