@@ -374,28 +374,35 @@ function defocusSearchBar() {
374
374
}
375
375
}
376
376
377
- function getHelpElement ( ) {
378
- buildHelperPopup ( ) ;
377
+ function getHelpElement ( build ) {
378
+ if ( build !== false ) {
379
+ buildHelperPopup ( ) ;
380
+ }
379
381
return document . getElementById ( "help" ) ;
380
382
}
381
383
382
384
function displayHelp ( display , ev , help ) {
383
- help = help ? help : getHelpElement ( ) ;
384
385
if ( display === true ) {
386
+ help = help ? help : getHelpElement ( true ) ;
385
387
if ( hasClass ( help , "hidden" ) ) {
386
388
ev . preventDefault ( ) ;
387
389
removeClass ( help , "hidden" ) ;
388
390
addClass ( document . body , "blur" ) ;
389
391
}
390
- } else if ( hasClass ( help , "hidden" ) === false ) {
391
- ev . preventDefault ( ) ;
392
- addClass ( help , "hidden" ) ;
393
- removeClass ( document . body , "blur" ) ;
392
+ } else {
393
+ // No need to build the help popup if we want to hide it in case it hasn't been
394
+ // built yet...
395
+ help = help ? help : getHelpElement ( false ) ;
396
+ if ( help && hasClass ( help , "hidden" ) === false ) {
397
+ ev . preventDefault ( ) ;
398
+ addClass ( help , "hidden" ) ;
399
+ removeClass ( document . body , "blur" ) ;
400
+ }
394
401
}
395
402
}
396
403
397
404
function handleEscape ( ev ) {
398
- var help = getHelpElement ( ) ;
405
+ var help = getHelpElement ( false ) ;
399
406
var search = getSearchElement ( ) ;
400
407
if ( hasClass ( help , "hidden" ) === false ) {
401
408
displayHelp ( false , ev , help ) ;
@@ -558,6 +565,7 @@ function defocusSearchBar() {
558
565
} ( ) ) ;
559
566
560
567
document . addEventListener ( "click" , function ( ev ) {
568
+ var helpElem = getHelpElement ( false ) ;
561
569
if ( hasClass ( ev . target , "help-button" ) ) {
562
570
displayHelp ( true , ev ) ;
563
571
} else if ( hasClass ( ev . target , "collapse-toggle" ) ) {
@@ -566,11 +574,10 @@ function defocusSearchBar() {
566
574
collapseDocs ( ev . target . parentNode , "toggle" ) ;
567
575
} else if ( ev . target . tagName === "SPAN" && hasClass ( ev . target . parentNode , "line-numbers" ) ) {
568
576
handleSourceHighlight ( ev ) ;
569
- } else if ( hasClass ( getHelpElement ( ) , "hidden" ) === false ) {
570
- var help = getHelpElement ( ) ;
571
- var is_inside_help_popup = ev . target !== help && help . contains ( ev . target ) ;
577
+ } else if ( helpElem && hasClass ( helpElem , "hidden" ) === false ) {
578
+ var is_inside_help_popup = ev . target !== helpElem && helpElem . contains ( ev . target ) ;
572
579
if ( is_inside_help_popup === false ) {
573
- addClass ( help , "hidden" ) ;
580
+ addClass ( helpElem , "hidden" ) ;
574
581
removeClass ( document . body , "blur" ) ;
575
582
}
576
583
} else {
0 commit comments