commit 6f461fdb5c1832b5ccafea60f03a56ef3ca3f1d9
parent 31992363fd189b49432ee850a71467f67a43702f
Author: Davide P. Cervone <dpvc@union.edu>
Date: Sun, 13 Sep 2015 18:59:08 -0400
Make keyboard menus work with [Math Processing Error] elements.
Diffstat:
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js
@@ -2354,18 +2354,26 @@ MathJax.Hub = {
//
var errorSettings = this.config.errorSettings;
var errorText = LOCALIZE(errorSettings.messageId,errorSettings.message);
- var error = MathJax.HTML.Element("span",
- {className:"MathJax_Error", jaxID:"Error", isMathJax:true},errorText);
+ var error = MathJax.HTML.Element("span", {
+ className:"MathJax_Error", jaxID:"Error", isMathJax:true,
+ id: script.MathJax.error.inputID+"-Frame"
+ },errorText);
//
// Attach the menu events
//
if (MathJax.Extension.MathEvents) {
- error.oncontextmenu = MathJax.Extension.MathEvents.Event.Menu;
- error.onmousedown = MathJax.Extension.MathEvents.Event.Mousedown;
+ var EVENT = MathJax.Extension.MathEvents.Event;
+ error.oncontextmenu = EVENT.Menu;
+ error.onmousedown = EVENT.Mousedown;
+ error.onkeydown = EVENT.Keydown;
+ error.tabIndex = 0;
} else {
MathJax.Ajax.Require("[MathJax]/extensions/MathEvents.js",function () {
- error.oncontextmenu = MathJax.Extension.MathEvents.Event.Menu;
- error.onmousedown = MathJax.Extension.MathEvents.Event.Mousedown;
+ var EVENT = MathJax.Extension.MathEvents.Event;
+ error.oncontextmenu = EVENT.Menu;
+ error.onmousedown = EVENT.Mousedown;
+ error.keydown = EVENT.Keydown;
+ error.tabIndex = 0;
});
}
//
@@ -3036,15 +3044,17 @@ MathJax.Hub.Startup = {
// Some "Fake" jax used to allow menu access for "Math Processing Error" messages
//
BASE.OutputJax.Error = {
- id: "Error", version: "2.5.0", config: {},
+ id: "Error", version: "2.5.0", config: {}, errors: 0,
ContextMenu: function () {return BASE.Extension.MathEvents.Event.ContextMenu.apply(BASE.Extension.MathEvents.Event,arguments)},
Mousedown: function () {return BASE.Extension.MathEvents.Event.AltContextMenu.apply(BASE.Extension.MathEvents.Event,arguments)},
getJaxFromMath: function (math) {return (math.nextSibling.MathJax||{}).error},
Jax: function (text,script) {
var jax = MathJax.Hub.inputJax[script.type.replace(/ *;(.|\s)*/,"")];
+ this.errors++;
return {
inputJax: (jax||{id:"Error"}).id, // Use Error InputJax as fallback
outputJax: "Error",
+ inputID: "MathJax-Error-"+this.errors,
sourceMenuTitle: /*_(MathMenu)*/ ["ErrorMessage","Error Message"],
sourceMenuFormat: "Error",
originalText: MathJax.HTML.getScript(script),