Fix layer ordering with multiple stacks on same auto z-index

This commit is contained in:
Niklas von Hertzen
2014-10-19 22:29:34 +03:00
parent 7e13231807
commit 04bdb48cba
4 changed files with 91 additions and 8 deletions

View File

@ -200,7 +200,7 @@ NodeParser.prototype.isRootElement = function(container) {
};
NodeParser.prototype.sortStackingContexts = function(stack) {
stack.contexts.sort(zIndexSort);
stack.contexts.sort(zIndexSort(stack.contexts.slice(0)));
stack.contexts.forEach(this.sortStackingContexts, this);
};
@ -710,8 +710,10 @@ function isTextNode(container) {
return container.node.nodeType === Node.TEXT_NODE;
}
function zIndexSort(a, b) {
return a.cssInt("zIndex") - b.cssInt("zIndex");
function zIndexSort(contexts) {
return function(a, b) {
return (a.cssInt("zIndex") + (contexts.indexOf(a) / contexts.length)) - (b.cssInt("zIndex") + (contexts.indexOf(b) / contexts.length));
};
}
function hasOpacity(container) {