Browse Source

Better rules to allow movement in SceneTree (#161)

Jed974 4 years ago
parent
commit
a07a4e07e4
1 changed files with 13 additions and 7 deletions
  1. 13 7
      hide/comp/SceneEditor.hx

+ 13 - 7
hide/comp/SceneEditor.hx

@@ -544,13 +544,19 @@ class SceneEditor {
 			return true;
 			return true;
 		};
 		};
 		tree.onAllowMove = function(e, to) {
 		tree.onAllowMove = function(e, to) {
-			// var allowMove = false;
-			// if (to == null && e.getHideProps().allowParent == null) allowMove = true;
-			// else if (to == null) allowMove = false;
-			// else if (to.getHideProps().allowChildren != null && to.getHideProps().allowChildren(e.type) 
-			// && e.getHideProps().allowParent != null && e.getHideProps().allowParent(to))
-			// 	allowMove = true;
-			return true;
+			if (e.getHideProps().allowParent == null)
+				if (to == null || to.getHideProps().allowChildren == null || (to.getHideProps().allowChildren != null && to.getHideProps().allowChildren(e.type)))
+					return true;
+				else return false;
+			if (to == null)
+				if (e.getHideProps().allowParent(sceneData))
+					return true;
+				else return false;
+
+			if ((to.getHideProps().allowChildren == null || to.getHideProps().allowChildren != null && to.getHideProps().allowChildren(e.type))
+			&& e.getHideProps().allowParent(to))
+				return true;
+			return false;
 		};
 		};
 
 
 		// Batch tree.onMove, which is called for every node moved, causing problems with undo and refresh
 		// Batch tree.onMove, which is called for every node moved, causing problems with undo and refresh