Ver Fonte

Fixed scaling undo bug introduced by last commit

Ivan Safrin há 12 anos atrás
pai
commit
fa4b1b3ec6

+ 1 - 1
IDE/Contents/Source/PolycodeEditor.cpp

@@ -118,7 +118,7 @@ void PolycodeEditor::handleEvent(Event *event) {
 }
 }
 
 
 void PolycodeEditor::didAction(String actionName, PolycodeEditorActionData *beforeData, PolycodeEditorActionData *afterData, bool setFileChanged) {
 void PolycodeEditor::didAction(String actionName, PolycodeEditorActionData *beforeData, PolycodeEditorActionData *afterData, bool setFileChanged) {
-
+	
 	if(setFileChanged) {
 	if(setFileChanged) {
 		setHasChanges(true);
 		setHasChanges(true);
 	}
 	}

+ 6 - 11
IDE/Contents/Source/PolycodeScreenEditor.cpp

@@ -1208,8 +1208,6 @@ void PolycodeScreenEditorMain::handleMouseMove(Vector2 position) {
 				Number scaleMod = 0.04;
 				Number scaleMod = 0.04;
 				Number newScale = newDist - baseDist;
 				Number newScale = newDist - baseDist;
 
 
-				printf("baseDist: %f newDist: %f newScale: %f\n", baseDist, newDist, newScale);
-
 				for(int i=0; i < selectedEntities.size(); i++) {												
 				for(int i=0; i < selectedEntities.size(); i++) {												
 					Number newScaleX, newScaleY;
 					Number newScaleX, newScaleY;
 					if(baseEntityScales[i].x < 0.0) {
 					if(baseEntityScales[i].x < 0.0) {
@@ -2044,9 +2042,7 @@ void PolycodeScreenEditorMain::handleEvent(Event *event) {
 			}						
 			}						
 			mouseBase = CoreServices::getInstance()->getCore()->getInput()->getMousePosition();			
 			mouseBase = CoreServices::getInstance()->getCore()->getInput()->getMousePosition();			
 		}
 		}
-	}
-	
-	if(event->getDispatcher() == transformRotator) {
+	} else if(event->getDispatcher() == transformRotator) {
 		if(selectedEntities.size() > 0) {
 		if(selectedEntities.size() > 0) {
 			baseScaleScreenPosition = screenTransform->getScreenPosition();		
 			baseScaleScreenPosition = screenTransform->getScreenPosition();		
 			rotating = true;
 			rotating = true;
@@ -2214,13 +2210,12 @@ void PolycodeScreenEditorMain::handleEvent(Event *event) {
 							Paste(data, type);
 							Paste(data, type);
 							destroyClipboardData(data, type);
 							destroyClipboardData(data, type);
 						}
 						}
+						beforeData = new PolycodeScreenEditorActionData();						
+						for(int i=0; i < selectedEntities.size(); i++) {
+							beforeData->entries.push_back(PolycodeScreenEditorActionDataEntry(selectedEntities[i]->position));
+						}															
 					}
 					}
-					firstMove = false;
-					beforeData = new PolycodeScreenEditorActionData();						
-					for(int i=0; i < selectedEntities.size(); i++) {
-						beforeData->entries.push_back(PolycodeScreenEditorActionDataEntry(selectedEntities[i]->position));
-					}									
-					
+					firstMove = false;					
 				}
 				}
 				updateCursor();
 				updateCursor();
 				handleMouseMove(inputEvent->mousePosition);
 				handleMouseMove(inputEvent->mousePosition);