Browse Source

changing event names as per requested, and using new events in editor viewport for more reliable disabling of editorcontrols

Daniel Taub 11 years ago
parent
commit
bf4d930cce
2 changed files with 16 additions and 13 deletions
  1. 10 7
      editor/js/Viewport.js
  2. 6 6
      examples/js/controls/TransformControls.js

+ 10 - 7
editor/js/Viewport.js

@@ -41,22 +41,25 @@ var Viewport = function ( editor ) {
 	var transformControls = new THREE.TransformControls( camera, container.dom );
 	transformControls.addEventListener( 'change', function () {
 
-		controls.enabled = true;
+		render();
 
-		if ( transformControls.axis !== null ) {
+	} );
+	transformControls.addEventListener( 'objectChange', function () {
 
-			controls.enabled = false;
+		signals.objectChanged.dispatch( transformControls.object );
 
-		}
+	} );
+	transformControls.addEventListener( 'mouseDown', function () {
 
-		render();
+		controls.enabled = false;
 
 	} );
-	transformControls.addEventListener( 'objectChange', function () {
+	transformControls.addEventListener( 'mouseUp', function () {
 
-		signals.objectChanged.dispatch( transformControls.object );
+		controls.enabled = true;
 
 	} );
+
 	sceneHelpers.add( transformControls );
 
 	// fog

+ 6 - 6
examples/js/controls/TransformControls.js

@@ -568,8 +568,8 @@
 		var _plane = "XY";
 
 		var changeEvent = { type: "change" };
-		var clickEvent = { type: "click" };
-		var clickDoneEvent = { type: "clickDone", mode: _mode };
+		var mouseDownEvent = { type: "mouseDown" };
+		var mouseUpEvent = { type: "mouseUp", mode: _mode };
 		var objectChangeEvent = { type: "objectChange" };
 
 		var ray = new THREE.Raycaster();
@@ -760,7 +760,7 @@
 
 				if ( intersect ) {
 
-					scope.dispatchEvent( clickEvent );
+					scope.dispatchEvent( mouseDownEvent );
 
 					scope.axis = intersect.object.name;
 
@@ -961,9 +961,9 @@
 
 		function onPointerUp( event ) {
 
-			if ( _dragging ) {
-				clickDoneEvent.mode = _mode;
-				scope.dispatchEvent( clickDoneEvent )
+			if ( _dragging && !!scope.axis ) {
+				mouseUpEvent.mode = _mode;
+				scope.dispatchEvent( mouseUpEvent )
 			}
 			_dragging = false;
 			onPointerHover( event );