@@ -349,28 +349,35 @@ function defocusSearchBar() {
349349 }
350350 }
351351
352- function getHelpElement ( ) {
353- buildHelperPopup ( ) ;
352+ function getHelpElement ( build ) {
353+ if ( build !== false ) {
354+ buildHelperPopup ( ) ;
355+ }
354356 return document . getElementById ( "help" ) ;
355357 }
356358
357359 function displayHelp ( display , ev , help ) {
358- help = help ? help : getHelpElement ( ) ;
359360 if ( display === true ) {
361+ help = help ? help : getHelpElement ( true ) ;
360362 if ( hasClass ( help , "hidden" ) ) {
361363 ev . preventDefault ( ) ;
362364 removeClass ( help , "hidden" ) ;
363365 addClass ( document . body , "blur" ) ;
364366 }
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+ }
369376 }
370377 }
371378
372379 function handleEscape ( ev ) {
373- var help = getHelpElement ( ) ;
380+ var help = getHelpElement ( false ) ;
374381 var search = getSearchElement ( ) ;
375382 if ( hasClass ( help , "hidden" ) === false ) {
376383 displayHelp ( false , ev , help ) ;
@@ -537,6 +544,7 @@ function defocusSearchBar() {
537544 } ( ) ) ;
538545
539546 document . addEventListener ( "click" , function ( ev ) {
547+ var helpElem = getHelpElement ( false ) ;
540548 if ( hasClass ( ev . target , "help-button" ) ) {
541549 displayHelp ( true , ev ) ;
542550 } else if ( hasClass ( ev . target , "collapse-toggle" ) ) {
@@ -545,11 +553,10 @@ function defocusSearchBar() {
545553 collapseDocs ( ev . target . parentNode , "toggle" ) ;
546554 } else if ( ev . target . tagName === "SPAN" && hasClass ( ev . target . parentNode , "line-numbers" ) ) {
547555 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 ) ;
551558 if ( is_inside_help_popup === false ) {
552- addClass ( help , "hidden" ) ;
559+ addClass ( helpElem , "hidden" ) ;
553560 removeClass ( document . body , "blur" ) ;
554561 }
555562 } else {
0 commit comments