@@ -396,38 +396,46 @@ function getSearchElement() {
396
396
397
397
document . onkeypress = handleShortcut ;
398
398
document . onkeydown = handleShortcut ;
399
- document . onclick = function ( ev ) {
400
- if ( hasClass ( ev . target , "collapse-toggle" ) ) {
401
- collapseDocs ( ev . target , "toggle" ) ;
402
- } else if ( hasClass ( ev . target . parentNode , "collapse-toggle" ) ) {
403
- collapseDocs ( ev . target . parentNode , "toggle" ) ;
404
- } else if ( ev . target . tagName === "SPAN" && hasClass ( ev . target . parentNode , "line-numbers" ) ) {
405
- var prev_id = 0 ;
406
399
407
- var set_fragment = function ( name ) {
408
- if ( browserSupportsHistoryApi ( ) ) {
409
- history . replaceState ( null , null , "#" + name ) ;
410
- highlightSourceLines ( ) ;
411
- } else {
412
- location . replace ( "#" + name ) ;
413
- }
414
- } ;
400
+ var handleSourceHighlight = ( function ( ) {
401
+ var prev_line_id = 0 ;
402
+
403
+ var set_fragment = function ( name ) {
404
+ if ( browserSupportsHistoryApi ( ) ) {
405
+ history . replaceState ( null , null , "#" + name ) ;
406
+ highlightSourceLines ( ) ;
407
+ } else {
408
+ location . replace ( "#" + name ) ;
409
+ }
410
+ } ;
415
411
416
- var cur_id = parseInt ( ev . target . id , 10 ) ;
412
+ return function ( ev ) {
413
+ var cur_line_id = parseInt ( ev . target . id , 10 ) ;
417
414
418
- if ( ev . shiftKey && prev_id ) {
419
- if ( prev_id > cur_id ) {
420
- var tmp = prev_id ;
421
- prev_id = cur_id ;
422
- cur_id = tmp ;
415
+ if ( ev . shiftKey && prev_line_id ) {
416
+ // Swap selection if needed
417
+ if ( prev_line_id > cur_line_id ) {
418
+ var tmp = prev_line_id ;
419
+ prev_line_id = cur_line_id ;
420
+ cur_line_id = tmp ;
423
421
}
424
422
425
- set_fragment ( prev_id + "-" + cur_id ) ;
423
+ set_fragment ( prev_line_id + "-" + cur_line_id ) ;
426
424
} else {
427
- prev_id = cur_id ;
425
+ prev_line_id = cur_line_id ;
428
426
429
- set_fragment ( cur_id ) ;
427
+ set_fragment ( cur_line_id ) ;
430
428
}
429
+ }
430
+ } ) ( ) ;
431
+
432
+ document . onclick = function ( ev ) {
433
+ if ( hasClass ( ev . target , "collapse-toggle" ) ) {
434
+ collapseDocs ( ev . target , "toggle" ) ;
435
+ } else if ( hasClass ( ev . target . parentNode , "collapse-toggle" ) ) {
436
+ collapseDocs ( ev . target . parentNode , "toggle" ) ;
437
+ } else if ( ev . target . tagName === "SPAN" && hasClass ( ev . target . parentNode , "line-numbers" ) ) {
438
+ handleSourceHighlight ( ev ) ;
431
439
} else if ( hasClass ( getHelpElement ( ) , "hidden" ) === false ) {
432
440
var help = getHelpElement ( ) ;
433
441
var is_inside_help_popup = ev . target !== help && help . contains ( ev . target ) ;
0 commit comments