@@ -374,28 +374,35 @@ function defocusSearchBar() {
374374 }
375375 }
376376
377- function getHelpElement ( ) {
378- buildHelperPopup ( ) ;
377+ function getHelpElement ( build ) {
378+ if ( build !== false ) {
379+ buildHelperPopup ( ) ;
380+ }
379381 return document . getElementById ( "help" ) ;
380382 }
381383
382384 function displayHelp ( display , ev , help ) {
383- help = help ? help : getHelpElement ( ) ;
384385 if ( display === true ) {
386+ help = help ? help : getHelpElement ( true ) ;
385387 if ( hasClass ( help , "hidden" ) ) {
386388 ev . preventDefault ( ) ;
387389 removeClass ( help , "hidden" ) ;
388390 addClass ( document . body , "blur" ) ;
389391 }
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+ }
394401 }
395402 }
396403
397404 function handleEscape ( ev ) {
398- var help = getHelpElement ( ) ;
405+ var help = getHelpElement ( false ) ;
399406 var search = getSearchElement ( ) ;
400407 if ( hasClass ( help , "hidden" ) === false ) {
401408 displayHelp ( false , ev , help ) ;
@@ -558,6 +565,7 @@ function defocusSearchBar() {
558565 } ( ) ) ;
559566
560567 document . addEventListener ( "click" , function ( ev ) {
568+ var helpElem = getHelpElement ( false ) ;
561569 if ( hasClass ( ev . target , "help-button" ) ) {
562570 displayHelp ( true , ev ) ;
563571 } else if ( hasClass ( ev . target , "collapse-toggle" ) ) {
@@ -566,11 +574,10 @@ function defocusSearchBar() {
566574 collapseDocs ( ev . target . parentNode , "toggle" ) ;
567575 } else if ( ev . target . tagName === "SPAN" && hasClass ( ev . target . parentNode , "line-numbers" ) ) {
568576 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 ) ;
572579 if ( is_inside_help_popup === false ) {
573- addClass ( help , "hidden" ) ;
580+ addClass ( helpElem , "hidden" ) ;
574581 removeClass ( document . body , "blur" ) ;
575582 }
576583 } else {
0 commit comments