From 0ff6013e1afd0e11e0f324275b044381960e5dc4 Mon Sep 17 00:00:00 2001 From: Sebastian Nyholm Date: Mon, 12 Nov 2012 09:57:53 +0200 Subject: [PATCH] Fixes #9545 SASS mixin nesting bugs with mixin. Fixes issue with blocknodes showing up in the wrong order Change-Id: Iba2dd3ddc3136ddba93e9653614b42f0b0dca971 --- .../com/vaadin/sass/visitor/BlockNodeHandler.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/theme-compiler/src/com/vaadin/sass/visitor/BlockNodeHandler.java b/theme-compiler/src/com/vaadin/sass/visitor/BlockNodeHandler.java index efbfc4b8ff..d338cb0843 100644 --- a/theme-compiler/src/com/vaadin/sass/visitor/BlockNodeHandler.java +++ b/theme-compiler/src/com/vaadin/sass/visitor/BlockNodeHandler.java @@ -17,12 +17,15 @@ package com.vaadin.sass.visitor; import java.util.ArrayList; +import java.util.HashMap; import com.vaadin.sass.tree.BlockNode; import com.vaadin.sass.tree.Node; public class BlockNodeHandler { + private static HashMap lastNodeAdded = new HashMap(); + public static void traverse(BlockNode node) { Node parent = node.getParentNode(); @@ -57,7 +60,15 @@ public class BlockNodeHandler { } node.setSelectorList(newList); - node.getParentNode().getParentNode() - .appendChild(node, node.getParentNode()); + Node oldParent = node.getParentNode(); + if (lastNodeAdded.get(oldParent) != null) { + node.getParentNode().getParentNode() + .appendChild(node, lastNodeAdded.get(oldParent)); + } else { + node.getParentNode().getParentNode() + .appendChild(node, node.getParentNode()); + } + + lastNodeAdded.put(oldParent, node); } } -- 2.39.5