Index: src/graph.js ================================================================== --- src/graph.js +++ src/graph.js @@ -927,10 +927,11 @@ mSHIFT = 1<<13, kFRST = mSHIFT | 78 /* SHIFT+N */, kNEXT = 78 /* N */, kPREV = 77 /* M */, kLAST = mSHIFT | 77 /* SHIFT+M */, + kTICK = 188 /* , */, kTMLN = 74 /* J */, kVIEW = 75 /* K */, kDONE = 76 /* L */, mod = evt.altKey<<15 | evt.ctrlKey<<14 | evt.shiftKey<<13, key = ( evt.which || evt.keyCode ) | mod; @@ -938,10 +939,11 @@ switch( key ){ case kFRST: dx = -2; break; case kNEXT: dx = -1; break; case kPREV: dx = +1; break; case kLAST: dx = +2; break; + case kTICK: break; case kTMLN: break; case kVIEW: break; case kDONE: break; default: return; } @@ -953,17 +955,23 @@ return; } document.cookie = 'fossil_timeline_kbnav=1;path=/'; var id = focusCacheGet(); if( id && dx==0 ){ - var ri = timelineGetRowInfo(id); - if( ri ){ - var page = key==kVIEW ? '/info/' : '/timeline?c='; - var href = ri.baseurl + page + encodeURIComponent(ri.hash); - if( href!=location.href.slice(-href.length) ){ - location.href = href; - return; + if( key==kTICK ){ + var gn = document.getElementById('tln'+id.slice(1)); + if( gn ) gn.click(); + } + else/* if( key==kTMLN || key==kVIEW )*/{ + var ri = timelineGetRowInfo(id); + if( ri ){ + var page = key==kVIEW ? '/info/' : '/timeline?c='; + var href = ri.baseurl + page + encodeURIComponent(ri.hash); + if( href!=location.href.slice(-href.length) ){ + location.href = href; + return; + } } } } else if ( id && dx!=0 ){ id = focusNextId(id,dx);