X-Git-Url: https://jasonwoof.com/gitweb/?p=userscripts.git;a=blobdiff_plain;f=numbered_links.user.js;h=3598b6898ad2147c0695e55f40bf9af77ed167d6;hp=d29b24aedd04f02832b7d950075bd83a0c4b2951;hb=bf5038a97153dc63d2c1be4c06e89343fb730f67;hpb=ed41a1794bddae541f6a8c0424f07c825e79d863 diff --git a/numbered_links.user.js b/numbered_links.user.js index d29b24a..3598b68 100644 --- a/numbered_links.user.js +++ b/numbered_links.user.js @@ -325,31 +325,6 @@ function followLinks(follow) { } } - - - - - - - - - - - - - - - - - - - - - - - - - // from your event handler you can: return stop_event(e) function stop_event(e) { // try { @@ -359,32 +334,51 @@ function stop_event(e) { // return false; // IE-compat // } } -document.addEventListener( - 'keydown', - function(e) { - // [de]activate on ^C - // deactivate on ESC - if( - (e.ctrlKey && e.keyCode == 67) - || (e.keyCode == 27 && active == 1) - ) { - if(active) { - got = ''; - removeAllHints(); - } else { - followLinks(got); - } - active = 1 - active; - return stop_event(e); - } else { - if(active == 1 && !e.ctrlKey && !e.shiftKey && !e.altKey) { - if(key_to_char[e.keyCode]) { - got += key_to_char[e.keyCode]; + +function init() { + document.addEventListener( + 'keydown', + function(e) { + // [de]activate on ^C + // deactivate on ESC + if( + (e.ctrlKey && e.keyCode == 67) + || (e.keyCode == 27 && active == 1) + ) { + if(active) { + got = ''; + removeAllHints(); + } else { followLinks(got); - return stop_event(e); + } + active = 1 - active; + return stop_event(e); + } else { + if(active == 1 && !e.ctrlKey && !e.shiftKey && !e.altKey) { + if(key_to_char[e.keyCode]) { + got += key_to_char[e.keyCode]; + followLinks(got); + return stop_event(e); + } + } else { + // general keybinding, unrelated to numbered links + if (document.activeElement == document.body) { // FIXME get more specific + var c = key_to_char[e.keyCode]; + switch (c) { + case 'c': + window.scrollBy(0, -200); + break; + case 't': + window.scrollBy(0, 200); + break; + } + } } } - } - }, - true); + }, + true); +} + +init(); + })();