瀏覽代碼

Fixed scaling undo bug introduced by last commit

Ivan Safrin 12 年之前
父節點
當前提交
fa4b1b3ec6
共有 2 個文件被更改,包括 7 次插入12 次删除
  1. 1 1
      IDE/Contents/Source/PolycodeEditor.cpp
  2. 6 11
      IDE/Contents/Source/PolycodeScreenEditor.cpp

+ 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) {
-
+	
 	if(setFileChanged) {
 		setHasChanges(true);
 	}

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

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