commit 1c07cf3189672877293f102c18b9f215c03be979
parent 39109bf88a1a4a04d1c1f109eb8c44cf75f2ea13
Author: zorkow <volker.sorge@gmail.com>
Date: Wed, 26 Aug 2015 14:17:08 +0100
Removes all caching of MathJax nodes.
Diffstat:
1 file changed, 16 insertions(+), 23 deletions(-)
diff --git a/unpacked/extensions/MathMenu.js b/unpacked/extensions/MathMenu.js
@@ -297,7 +297,7 @@
if (event) {
var x = event.pageX, y = event.pageY;
}
- var node = MENU.GetNode() || event.target;
+ var node = MENU.CurrentNode() || event.target;
if (!x && !y && node) {
var rect = node.getBoundingClientRect();
x = rect.right;
@@ -477,26 +477,24 @@
/*
* Keyboard navigation of menu.
*/
- node: null, // The node the menu was activated on. HTML!
active: null, // The currently focused item. There can only be one! HTML!
posted: false, // Is a menu open?
- GetJaxs: function() {
+ GetNode: function(jax) {
+ var node = document.getElementById(jax.inputID + '-Frame');
+ return node.isMathJax ? node : node.firstChild;
+ },
+ CurrentNode: function() {
+ return MENU.GetNode(MENU.jax);
+ },
+ AllNodes: function() {
var jaxs = MathJax.Hub.getAllJax();
var nodes = [];
for (var i = 0, jax; jax = jaxs[i]; i++) {
- var node = document.getElementById(jax.inputID + "-Frame");
- nodes.push(node.isMathJax ? node : node.firstChild);
+ nodes.push(MENU.GetNode(jax));
}
return nodes;
},
- GetNode: function() {
- return document.getElementById(MENU.jax.inputID + '-Frame');
- // return MENU.node;
- },
- SetNode: function(node) {
- MENU.node = node;
- },
GetActive: function() {
return MENU.active;
},
@@ -518,10 +516,7 @@
MENU.GetActive().focus();
},
Activate: function(event, menu) {
- if (!MENU.GetNode()) {
- MENU.SetNode(document.getElementById(MENU.jax.inputID + '-Frame'));
- }
- var jaxs = MENU.GetJaxs();
+ var jaxs = MENU.AllNodes();
for (var j = 0, jax; jax = jaxs[j]; j++) {
jax.tabIndex = -1;
}
@@ -530,29 +525,27 @@
Unfocus: function() {
MENU.GetActive().tabIndex = -1;
MENU.SetActive(null);
- var jaxs = MENU.GetJaxs();
+ var jaxs = MENU.AllNodes();
for (var j = 0, jax; jax = jaxs[j]; j++) {
jax.tabIndex = 0;
}
- MENU.GetNode().focus();
- MENU.SetNode(null);
+ MENU.CurrentNode().focus();
MENU.posted = false;
},
//TODO: A toggle focus method on the top level would avoid having to
//tabIndex all the Jaxs.
Move: function(event, menu, move) {
- var jaxs = MENU.GetJaxs();
+ var jaxs = MENU.AllNodes();
var len = jaxs.length;
if (len === 0) {
return;
}
- var next = jaxs[MENU.Mod(move(jaxs.indexOf(MENU.GetNode())), len)];
- if (next === MENU.GetNode()) {
+ var next = jaxs[MENU.Mod(move(jaxs.indexOf(MENU.CurrentNode())), len)];
+ if (next === MENU.CurrentNode()) {
return;
}
MENU.menu.Remove(event, menu);
MENU.jax = MathJax.Hub.getJaxFor(next);
- MENU.SetNode(next);
MENU.menu.Post(null);
},
Right: function(event, menu) {