[code] Fixed Script edition cursor bugs.

The scroll is now reloaded when text is inserted or a new line is
entered. When opening a script, the cursor moves to the end of the
script.

Change-Id: I027ea80db485916fc3fc962cfa9e032ca0bbc81e
This commit is contained in:
Léa Saviot
2017-11-10 15:55:32 +01:00
committed by Romain Goyet
parent 8668de21a1
commit 42e6435973
3 changed files with 6 additions and 1 deletions

View File

@@ -29,6 +29,10 @@ void EditorController::didBecomeFirstResponder() {
app()->setFirstResponder(&m_textArea);
}
void EditorController::viewWillAppear() {
m_textArea.moveCursor(strlen(m_textArea.text() - m_textArea.cursorLocation()));
}
void EditorController::viewDidDisappear() {
m_scriptParameterController->scriptContentEditionDidFinish();
}

View File

@@ -17,6 +17,7 @@ public:
View * view() override { return &m_textArea; }
bool handleEvent(Ion::Events::Event event) override;
void didBecomeFirstResponder() override;
void viewWillAppear() override;
void viewDidDisappear() override;
ViewController::DisplayParameter displayParameter() override { return ViewController::DisplayParameter::WantsMaximumSpace; }

View File

@@ -334,7 +334,6 @@ Toolbox * TextArea::toolbox() {
bool TextArea::handleEvent(Ion::Events::Event event) {
if (m_delegate != nullptr && m_delegate->textAreaDidReceiveEvent(this, event)) {
return true;
} else if (Responder::handleEvent(event)) {
// The only event Responder handles is 'Toolbox' displaying.
return true;
@@ -386,4 +385,5 @@ void TextArea::moveCursor(int deltaX) {
for (int i = 0; i < numberSteps; i++) {
m_contentView.moveCursorIndex(sign);
}
scrollToContentRect(m_contentView.cursorRect(), true);
}