@@ -349,28 +349,35 @@ function defocusSearchBar() {
349
349
}
350
350
}
351
351
352
- function getHelpElement ( ) {
353
- buildHelperPopup ( ) ;
352
+ function getHelpElement ( build ) {
353
+ if ( build !== false ) {
354
+ buildHelperPopup ( ) ;
355
+ }
354
356
return document . getElementById ( "help" ) ;
355
357
}
356
358
357
359
function displayHelp ( display , ev , help ) {
358
- help = help ? help : getHelpElement ( ) ;
359
360
if ( display === true ) {
361
+ help = help ? help : getHelpElement ( true ) ;
360
362
if ( hasClass ( help , "hidden" ) ) {
361
363
ev . preventDefault ( ) ;
362
364
removeClass ( help , "hidden" ) ;
363
365
addClass ( document . body , "blur" ) ;
364
366
}
365
- } else if ( hasClass ( help , "hidden" ) === false ) {
366
- ev . preventDefault ( ) ;
367
- addClass ( help , "hidden" ) ;
368
- removeClass ( document . body , "blur" ) ;
367
+ } else {
368
+ // No need to build the help popup if we want to hide it in case it hasn't been
369
+ // built yet...
370
+ help = help ? help : getHelpElement ( false ) ;
371
+ if ( help && hasClass ( help , "hidden" ) === false ) {
372
+ ev . preventDefault ( ) ;
373
+ addClass ( help , "hidden" ) ;
374
+ removeClass ( document . body , "blur" ) ;
375
+ }
369
376
}
370
377
}
371
378
372
379
function handleEscape ( ev ) {
373
- var help = getHelpElement ( ) ;
380
+ var help = getHelpElement ( false ) ;
374
381
var search = getSearchElement ( ) ;
375
382
if ( hasClass ( help , "hidden" ) === false ) {
376
383
displayHelp ( false , ev , help ) ;
@@ -537,6 +544,7 @@ function defocusSearchBar() {
537
544
} ( ) ) ;
538
545
539
546
document . addEventListener ( "click" , function ( ev ) {
547
+ var helpElem = getHelpElement ( false ) ;
540
548
if ( hasClass ( ev . target , "help-button" ) ) {
541
549
displayHelp ( true , ev ) ;
542
550
} else if ( hasClass ( ev . target , "collapse-toggle" ) ) {
@@ -545,11 +553,10 @@ function defocusSearchBar() {
545
553
collapseDocs ( ev . target . parentNode , "toggle" ) ;
546
554
} else if ( ev . target . tagName === "SPAN" && hasClass ( ev . target . parentNode , "line-numbers" ) ) {
547
555
handleSourceHighlight ( ev ) ;
548
- } else if ( hasClass ( getHelpElement ( ) , "hidden" ) === false ) {
549
- var help = getHelpElement ( ) ;
550
- var is_inside_help_popup = ev . target !== help && help . contains ( ev . target ) ;
556
+ } else if ( helpElem && hasClass ( helpElem , "hidden" ) === false ) {
557
+ var is_inside_help_popup = ev . target !== helpElem && helpElem . contains ( ev . target ) ;
551
558
if ( is_inside_help_popup === false ) {
552
- addClass ( help , "hidden" ) ;
559
+ addClass ( helpElem , "hidden" ) ;
553
560
removeClass ( document . body , "blur" ) ;
554
561
}
555
562
} else {
0 commit comments