From afdd671999f9fb778aaa45a1a9bf045758797459 Mon Sep 17 00:00:00 2001 From: zorkow Date: Tue, 1 Sep 2015 03:46:07 +0100 Subject: [PATCH] Proper keyhandling for popup windows. --- unpacked/extensions/HelpDialog.js | 11 +++++++++-- unpacked/extensions/MathMenu.js | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/unpacked/extensions/HelpDialog.js b/unpacked/extensions/HelpDialog.js index 440368281..3a195d90c 100644 --- a/unpacked/extensions/HelpDialog.js +++ b/unpacked/extensions/HelpDialog.js @@ -101,7 +101,7 @@ HELP.Post = function () { this.div = MENU.Background(this); var help = HTML.addElement(this.div,"div",{ - id: "MathJax_Help", tabIndex: "0" + id: "MathJax_Help", tabIndex: 0, onkeydown: HELP.Keydown },LOCALE._("HelpDialog",[ ["b",{style:{fontSize:"120%"}},[["Help","MathJax Help"]]], ["div",{id: "MathJax_HelpContent"},[ @@ -149,7 +149,7 @@ ]], ["a",{href:"http://www.mathjax.org/"},["www.mathjax.org"]], ["span",{id: "MathJax_HelpClose", onclick: HELP.Remove, - onkeydown: HELP.Remove, tabIndex: '0', + onkeydown: HELP.Keydown, tabIndex: 0, 'aria-label': 'Close', 'aria-describedby': 'Close window'}, [["span",{},["\u00D7"]]] ] @@ -170,6 +170,13 @@ HELP.Remove = function (event) { if (HELP.div) {document.body.removeChild(HELP.div); delete HELP.div} }; + HELP.Keydown = function(event) { + if (event.keyCode === KEY.ESCAPE || + (this.id === 'MathJax_HelpClose' && + (event.keyCode === KEY.SPACE || event.keyCode === KEY.Return))) { + HELP.Remove(event); + } + }, MathJax.Callback.Queue( HUB.Register.StartupHook("End Config",{}), // wait until config is complete diff --git a/unpacked/extensions/MathMenu.js b/unpacked/extensions/MathMenu.js index 41a2d47f2..e3db9b749 100644 --- a/unpacked/extensions/MathMenu.js +++ b/unpacked/extensions/MathMenu.js @@ -1018,7 +1018,7 @@ ]]); MENU.About.div = MENU.Background(MENU.About); var about = HTML.addElement(MENU.About.div,"div",{ - id: "MathJax_About", tabIndex:0 + id: "MathJax_About", tabIndex: 0, onkeydown: MENU.About.Keydown },[ ["b",{style:{fontSize:"120%"}},["MathJax"]]," v"+MathJax.version,["br"], _(font.replace(/ /g,""),"using "+font),["br"],["br"], @@ -1030,7 +1030,7 @@ ["a",{href:"http://www.mathjax.org/"},["www.mathjax.org"]], ["span",{className:"MathJax_MenuClose",id:"MathJax_AboutClose", onclick:MENU.About.Remove, - onkeydown:MENU.About.Remove, tabIndex:0, + onkeydown: MENU.About.Keydown, tabIndex: 0, 'aria-label': "Close", 'aria-describedby': "Close window"}, [["span",{},"\u00D7"]]] ]); @@ -1050,6 +1050,13 @@ MENU.About.Remove = function (event) { if (MENU.About.div) {document.body.removeChild(MENU.About.div); delete MENU.About.div} }; + MENU.About.Keydown = function(event) { + if (event.keyCode === KEY.ESCAPE || + (this.id === 'MathJax_AboutClose' && + (event.keyCode === KEY.SPACE || event.keyCode === KEY.Return))) { + MENU.About.Remove(event); + } + }, MENU.About.GetJax = function (jax,JAX,type,noTypeCheck) { var info = []; for (var id in JAX) {if (JAX.hasOwnProperty(id) && JAX[id]) {