@@ -153,6 +153,7 @@ var Documentation = {
153153 init : function ( ) {
154154 this . fixFirefoxAnchorBug ( ) ;
155155 this . highlightSearchWords ( ) ;
156+ this . initIndexTable ( ) ;
156157 this . initOnKeyListeners ( ) ;
157158 } ,
158159
@@ -266,6 +267,13 @@ var Documentation = {
266267 window . history . replaceState ( { } , '' , url ) ;
267268 } ,
268269
270+ /**
271+ * helper function to focus on search bar
272+ */
273+ focusSearchBar : function ( ) {
274+ $ ( 'input[name=q]' ) . first ( ) . focus ( ) ;
275+ } ,
276+
269277 /**
270278 * make the url absolute
271279 */
@@ -290,50 +298,52 @@ var Documentation = {
290298 initOnKeyListeners : function ( ) {
291299 // only install a listener if it is really needed
292300 if ( ! DOCUMENTATION_OPTIONS . NAVIGATION_WITH_KEYS &&
293- ! DOCUMENTATION_OPTIONS . SEARCH_WITH_KEYS &&
294- ! DOCUMENTATION_OPTIONS . REMOVE_HIGHLIGHT_WITH_KEYS )
301+ ! DOCUMENTATION_OPTIONS . ENABLE_SEARCH_SHORTCUTS )
295302 return ;
303+
296304 $ ( document ) . keydown ( function ( event ) {
297305 var activeElementType = document . activeElement . tagName ;
298306 // don't navigate when in search box, textarea, dropdown or button
299307 if ( activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
300308 && activeElementType !== 'BUTTON' ) {
301- if ( ! event . altKey && ! event . ctrlKey && ! event . metaKey && ! event . shiftKey ) {
302- switch ( event . key ) {
303- case 'ArrowLeft' :
304- if ( ! DOCUMENTATION_OPTIONS . NAVIGATION_WITH_KEYS )
309+ if ( event . altKey || event . ctrlKey || event . metaKey )
310+ return ;
311+
312+ if ( ! event . shiftKey ) {
313+ switch ( event . key ) {
314+ case 'ArrowLeft' :
315+ if ( ! DOCUMENTATION_OPTIONS . NAVIGATION_WITH_KEYS )
316+ break ;
317+ var prevHref = $ ( 'link[rel="prev"]' ) . prop ( 'href' ) ;
318+ if ( prevHref ) {
319+ window . location . href = prevHref ;
320+ return false ;
321+ }
305322 break ;
306- var prevHref = $ ( 'link[rel="prev"]' ) . prop ( 'href' ) ;
307- if ( prevHref ) {
308- window . location . href = prevHref ;
309- return false ;
310- }
311- break ;
312- case 'ArrowRight' :
313- if ( ! DOCUMENTATION_OPTIONS . NAVIGATION_WITH_KEYS )
323+ case 'ArrowRight' :
324+ if ( ! DOCUMENTATION_OPTIONS . NAVIGATION_WITH_KEYS )
325+ break ;
326+ var nextHref = $ ( 'link[rel="next"]' ) . prop ( 'href' ) ;
327+ if ( nextHref ) {
328+ window . location . href = nextHref ;
329+ return false ;
330+ }
314331 break ;
315- var nextHref = $ ( 'link[rel="next"]' ) . prop ( 'href' ) ;
316- if ( nextHref ) {
317- window . location . href = nextHref ;
332+ case 'Escape' :
333+ if ( ! DOCUMENTATION_OPTIONS . ENABLE_SEARCH_SHORTCUTS )
334+ break ;
335+ Documentation . hideSearchWords ( ) ;
318336 return false ;
319- }
320- break ;
321- case 'Escape' :
322- if ( ! DOCUMENTATION_OPTIONS . REMOVE_HIGHLIGHT_WITH_KEYS )
323- break ;
324- Documentation . hideSearchWords ( ) ;
325- return false ;
326337 }
327338 }
328- if ( ! event . altKey && ! event . ctrlKey && ! event . metaKey ) {
329- // some keyboard layouts need Shift to get /
330- switch ( event . key ) {
331- case '/' :
332- if ( ! DOCUMENTATION_OPTIONS . SEARCH_WITH_KEYS )
333- break ;
334- $ ( 'input[name=q]' ) . first ( ) . focus ( ) ;
335- return false ;
336- }
339+
340+ // some keyboard layouts may need Shift to get /
341+ switch ( event . key ) {
342+ case '/' :
343+ if ( ! DOCUMENTATION_OPTIONS . ENABLE_SEARCH_SHORTCUTS )
344+ break ;
345+ Documentation . focusSearchBar ( ) ;
346+ return false ;
337347 }
338348 }
339349 } ) ;
0 commit comments