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

Made sure cursor gets set to arrow when modal dialogs are shown in the IDE and on entering top background

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

+ 7 - 1
IDE/Contents/Source/PolycodeFrame.cpp

@@ -544,6 +544,7 @@ PolycodeFrame::PolycodeFrame() : ScreenEntity() {
 	topBarBg->setColorInt(21, 18, 17, 255);
 	topBarBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
 	topBarBg->processInputEvents = true;
+	topBarBg->addEventListener(this, InputEvent::EVENT_MOUSEMOVE);
 	topBarBg->blockMouseInput = true;
 	addChild(topBarBg);
 	
@@ -706,6 +707,7 @@ void PolycodeFrame::showModal(UIWindow *modalChild) {
 	if(modalChild == yesNoPopup) {
 		yesNoPopup->focusChild(yesNoPopup->okButton);
 	}
+	CoreServices::getInstance()->getCore()->setCursor(Core::CURSOR_ARROW);	
 }
 
 PolycodeProjectBrowser *PolycodeFrame::getProjectBrowser() {
@@ -809,6 +811,10 @@ void PolycodeFrame::handleEvent(Event *event) {
 		updateFileSelector();
 	}
 	
+	if(event->getDispatcher() == topBarBg) {
+		CoreServices::getInstance()->getCore()->setCursor(Core::CURSOR_ARROW);	
+	}
+	
 	if(event->getDispatcher() == projectManager) {
         if(projectManager->getActiveProject()) {
             currentProjectTitle->setText(projectManager->getActiveProject()->getProjectName());
@@ -841,7 +847,7 @@ void PolycodeFrame::handleEvent(Event *event) {
 				isDragging = false;
 				dragEntity->visible = false;
 			break;
-			case InputEvent::EVENT_MOUSEMOVE:
+			case InputEvent::EVENT_MOUSEMOVE:			
 				if(isDragging) {
 					dragEntity->setPosition(((InputEvent*)event)->mousePosition);
 				}

+ 14 - 6
Modules/Contents/UI/Source/PolyUITreeContainer.cpp

@@ -68,6 +68,7 @@ UITreeContainer::UITreeContainer(String icon, String text, Number treeWidth, Num
 	CoreServices::getInstance()->getCore()->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN);
 	this->addEventListener(this, InputEvent::EVENT_MOUSEDOWN);
 	this->addEventListener(this, InputEvent::EVENT_MOUSEOVER);
+	this->addEventListener(this, InputEvent::EVENT_MOUSEMOVE);	
 	focusable = true;
 	keyNavigable = true;
 }
@@ -90,12 +91,19 @@ void UITreeContainer::handleEvent(Event *event) {
 		}
 	}
 	
-	if (!hasFocus && event->getDispatcher() == this) {
-		if (event->getEventCode() == InputEvent::EVENT_MOUSEDOWN) {
-			if (parentEntity && isFocusable())
-				((ScreenEntity*)parentEntity)->focusChild(this);
-		} else if (event->getEventCode() == InputEvent::EVENT_MOUSEOVER) {
-			CoreServices::getInstance()->getCore()->setCursor(Core::CURSOR_ARROW);
+	if(event->getDispatcher() == this) {
+
+		if (event->getEventCode() == InputEvent::EVENT_MOUSEMOVE) {
+				CoreServices::getInstance()->getCore()->setCursor(Core::CURSOR_ARROW);			
+		}
+		
+		if (!hasFocus) {
+			if (event->getEventCode() == InputEvent::EVENT_MOUSEDOWN) {
+				if (parentEntity && isFocusable())
+					((ScreenEntity*)parentEntity)->focusChild(this);
+			} else if (event->getEventCode() == InputEvent::EVENT_MOUSEOVER) {
+				CoreServices::getInstance()->getCore()->setCursor(Core::CURSOR_ARROW);
+			}
 		}
 	}