Make keyboard menus work with [Math Processing Error] elements.

This commit is contained in:
Davide P. Cervone 2015-09-13 18:59:08 -04:00
parent 31992363fd
commit 6f461fdb5c

View File

@ -2354,18 +2354,26 @@ MathJax.Hub = {
// //
var errorSettings = this.config.errorSettings; var errorSettings = this.config.errorSettings;
var errorText = LOCALIZE(errorSettings.messageId,errorSettings.message); var errorText = LOCALIZE(errorSettings.messageId,errorSettings.message);
var error = MathJax.HTML.Element("span", var error = MathJax.HTML.Element("span", {
{className:"MathJax_Error", jaxID:"Error", isMathJax:true},errorText); className:"MathJax_Error", jaxID:"Error", isMathJax:true,
id: script.MathJax.error.inputID+"-Frame"
},errorText);
// //
// Attach the menu events // Attach the menu events
// //
if (MathJax.Extension.MathEvents) { if (MathJax.Extension.MathEvents) {
error.oncontextmenu = MathJax.Extension.MathEvents.Event.Menu; var EVENT = MathJax.Extension.MathEvents.Event;
error.onmousedown = MathJax.Extension.MathEvents.Event.Mousedown; error.oncontextmenu = EVENT.Menu;
error.onmousedown = EVENT.Mousedown;
error.onkeydown = EVENT.Keydown;
error.tabIndex = 0;
} else { } else {
MathJax.Ajax.Require("[MathJax]/extensions/MathEvents.js",function () { MathJax.Ajax.Require("[MathJax]/extensions/MathEvents.js",function () {
error.oncontextmenu = MathJax.Extension.MathEvents.Event.Menu; var EVENT = MathJax.Extension.MathEvents.Event;
error.onmousedown = MathJax.Extension.MathEvents.Event.Mousedown; 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 // Some "Fake" jax used to allow menu access for "Math Processing Error" messages
// //
BASE.OutputJax.Error = { 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)}, 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)}, Mousedown: function () {return BASE.Extension.MathEvents.Event.AltContextMenu.apply(BASE.Extension.MathEvents.Event,arguments)},
getJaxFromMath: function (math) {return (math.nextSibling.MathJax||{}).error}, getJaxFromMath: function (math) {return (math.nextSibling.MathJax||{}).error},
Jax: function (text,script) { Jax: function (text,script) {
var jax = MathJax.Hub.inputJax[script.type.replace(/ *;(.|\s)*/,"")]; var jax = MathJax.Hub.inputJax[script.type.replace(/ *;(.|\s)*/,"")];
this.errors++;
return { return {
inputJax: (jax||{id:"Error"}).id, // Use Error InputJax as fallback inputJax: (jax||{id:"Error"}).id, // Use Error InputJax as fallback
outputJax: "Error", outputJax: "Error",
inputID: "MathJax-Error-"+this.errors,
sourceMenuTitle: /*_(MathMenu)*/ ["ErrorMessage","Error Message"], sourceMenuTitle: /*_(MathMenu)*/ ["ErrorMessage","Error Message"],
sourceMenuFormat: "Error", sourceMenuFormat: "Error",
originalText: MathJax.HTML.getScript(script), originalText: MathJax.HTML.getScript(script),