Просмотр исходного кода

Focus now gets reset when a modal window is shown in the IDE

Ivan Safrin 12 лет назад
Родитель
Сommit
1d14f987c6

+ 1 - 0
IDE/Contents/Source/NewFileWindow.cpp

@@ -96,6 +96,7 @@ String NewFileWindow::getTemplatePath() {
 void NewFileWindow::resetForm() {
 	defaultTemplateTree->setSelected();
 	fileNameInput->setText("Untitled");
+	focusChild(fileNameInput);	
 }
 
 void NewFileWindow::handleEvent(Event *event) {

+ 4 - 4
IDE/Contents/Source/PolycodeFrame.cpp

@@ -695,6 +695,8 @@ void PolycodeFrame::showCurveEditor() {
 void PolycodeFrame::showModal(UIWindow *modalChild) {
 	modalBlocker->enabled = true;
 	
+	focusChild(NULL);
+	
 	this->modalChild = modalChild;
 	modalRoot->addChild(modalChild);
 	modalChild->showWindow();
@@ -895,16 +897,14 @@ void PolycodeFrame::handleEvent(Event *event) {
 	} else {
 		if(event->getEventType() == "UIEvent" && event->getEventCode() == UIEvent::CLICK_EVENT && event->getDispatcher() == newProjectButton) {
 
-			newProjectWindow->ResetForm();
 			showModal(newProjectWindow);
-
+			newProjectWindow->ResetForm();
 		}	
 		
 	if(event->getEventType() == "UIEvent" && event->getEventCode() == UIEvent::CLICK_EVENT && event->getDispatcher() == examplesButton) {
 
-			newProjectWindow->ResetForm();
 			showModal(exampleBrowserWindow);
-
+			newProjectWindow->ResetForm();
 		}			
 		
 	}

+ 4 - 5
IDE/Contents/Source/PolycodeIDEApp.cpp

@@ -246,15 +246,14 @@ void PolycodeIDEApp::removeFile() {
 }
 
 void PolycodeIDEApp::newProject() {
-	frame->newProjectWindow->ResetForm();
 	frame->showModal(frame->newProjectWindow);
-	
+	frame->newProjectWindow->ResetForm();	
 }
 
 void PolycodeIDEApp::newFile() {
 	if(projectManager->getActiveProject()) {
-		frame->newFileWindow->resetForm();
 		frame->showModal(frame->newFileWindow);
+		frame->newFileWindow->resetForm();		
 	}
 }
 
@@ -379,8 +378,8 @@ void PolycodeIDEApp::openProject() {
 }
 
 void PolycodeIDEApp::browseExamples() {
-	frame->newProjectWindow->ResetForm();
 	frame->showModal(frame->exampleBrowserWindow);
+	frame->newProjectWindow->ResetForm();	
 
 }
 
@@ -393,8 +392,8 @@ void PolycodeIDEApp::stopProject() {
 
 void PolycodeIDEApp::exportProject() {
 	if(projectManager->getActiveProject()) {
-		frame->exportProjectWindow->resetForm();
 		frame->showModal(frame->exportProjectWindow);		
+		frame->exportProjectWindow->resetForm();		
 	}	
 }
 

+ 1 - 0
Modules/Contents/UI/Source/PolyUITextInput.cpp

@@ -2068,6 +2068,7 @@ void UITextInput::updateWordWrap(int lineStart, int lineEnd) {
 		do {
 			wordWrapRangeEnd++;
 		}
+		
 		while(wordWrapLines[wordWrapRangeEnd].isWordWrap && wordWrapRangeEnd < wordWrapLines.size());
 		
 		wordWrapLines.erase(wordWrapLines.begin()+wordWrapRangeBegin, wordWrapLines.begin()+wordWrapRangeEnd);