Explorar el Código

Merge pull request #587 from fodinabor/UITextInputSelectionFix

Fixes text selection in UITextInput when cursor is out of the box
Ivan Safrin hace 11 años
padre
commit
3d8368505e
Se han modificado 1 ficheros con 4 adiciones y 4 borrados
  1. 4 4
      Modules/Contents/UI/Source/PolyUITextInput.cpp

+ 4 - 4
Modules/Contents/UI/Source/PolyUITextInput.cpp

@@ -141,7 +141,6 @@ UITextInput::UITextInput(bool multiLine, Number width, Number height) : UIElemen
 	textContainer->setPosition(padding + decoratorOffset, padding + textInputOffsetY);
 	
 	inputRect->addEventListener(this, InputEvent::EVENT_MOUSEDOWN);
-	inputRect->addEventListener(this, InputEvent::EVENT_MOUSEUP);	
 	inputRect->addEventListener(this, InputEvent::EVENT_MOUSEWHEEL_DOWN);
 	inputRect->addEventListener(this, InputEvent::EVENT_MOUSEWHEEL_UP);	
 	inputRect->addEventListener(this, InputEvent::EVENT_DOUBLECLICK);		
@@ -221,6 +220,7 @@ UITextInput::UITextInput(bool multiLine, Number width, Number height) : UIElemen
 	indentType = INDENT_TAB;
 	
 	core->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN);
+	core->getInput()->addEventListener(this, InputEvent::EVENT_MOUSEUP);
 }
 
 void UITextInput::checkBufferLines() {
@@ -2495,6 +2495,9 @@ void UITextInput::handleEvent(Event *event) {
 			InputEvent *inputEvent = (InputEvent*) event;
 			onKeyDown(inputEvent->key, inputEvent->charCode);
 		}
+		if (event->getEventCode() == InputEvent::EVENT_MOUSEUP) {
+			draggingSelection = false;
+		}
 	}
 
 	if(event->getDispatcher() == contextMenu) {
@@ -2565,9 +2568,6 @@ void UITextInput::handleEvent(Event *event) {
 					draggingSelection = true;
 				}
 			break;
-			case InputEvent::EVENT_MOUSEUP:
-				draggingSelection = false;
-			break;
 			case InputEvent::EVENT_MOUSEWHEEL_UP:
 				if(scrollContainer) {
 					scrollContainer->_onMouseWheelUp();