Files
gitx/html/lib/keyboardNavigation.js
T
Pieter de Bie bd097b0eff HTML: Restructure html folder
This changes the HTML part of GitX to be more consistent -- we
now use a "views" directory where every web view has it's own
directory.

Furthermore, GitX-wide Javascript is added in the "lib" directory.
The same is true for CSS in the "css" directory. Every view can
have its own custom CSS and JS, and those are put in the views
directory (without JS or CSS prefix directories).
2008-10-21 22:48:47 +02:00

62 lines
1.2 KiB
JavaScript

var scrollToCenter = function(element) {
window.scrollTo(0, element.offsetTop);
}
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 = document.getElementsByClassName("hunkheader");
if (hunks.length == 0)
return;
var currentHunk = document.getElementById("CurrentHunk");
var newHunk;
var index = -1;
for (; index < hunks.length; ++index) {
if (hunks[index] == currentHunk)
break;
}
if (currentHunk && index >= 0) {
currentHunk.id = null;
if (next)
newHunk = hunks[index + 1];
else
newHunk = hunks[index - 1];
}
if (!newHunk)
newHunk = hunks[0];
newHunk.id = 'CurrentHunk';
scrollToCenter(newHunk);
return false;
}
document.onkeydown = function(event) {
return handleKeys(event);
};