From 12221ab0af201c543ae9c45696e46be012e76493 Mon Sep 17 00:00:00 2001 From: Paulo Veiga Date: Mon, 5 Sep 2011 09:25:38 -0300 Subject: [PATCH] Minor fix to position cursor. --- .../main/javascript/MultilineTextEditor.js | 38 ++++++++++--------- mindplot/src/main/javascript/TextEditor.js | 8 ++-- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/mindplot/src/main/javascript/MultilineTextEditor.js b/mindplot/src/main/javascript/MultilineTextEditor.js index 055a32db..271870eb 100644 --- a/mindplot/src/main/javascript/MultilineTextEditor.js +++ b/mindplot/src/main/javascript/MultilineTextEditor.js @@ -43,7 +43,7 @@ mindplot.MultilineTextEditor = new Class({ textareaElem.setStyles({ border: "1px gray dashed", - background:"transparent", + background:"rgba(98, 135, 167, .3)", outline: '0 none', resize: 'none', overflow:"hidden" @@ -181,8 +181,7 @@ mindplot.MultilineTextEditor = new Class({ // Set the element focus and select the current text ... var inputElem = this._getTextareaElem(); - inputElem.focus(); - this._changeCursor(inputElem, $defined(defaultText)); + this._positionCursor(inputElem, !$defined(defaultText)); }.bind(this); @@ -228,24 +227,29 @@ mindplot.MultilineTextEditor = new Class({ return this._containerElem.getElement('textarea'); }, - _changeCursor : function(textareaElem, selectText) { - // Select text if it's required ... - if (textareaElem.createTextRange) //ie - { - var range = textareaElem.createTextRange(); - var pos = textareaElem.value.length; - if (!selectText) { - range.select(); - range.move("character", pos); + _positionCursor : function(textareaElem, selectText) { + textareaElem.focus(); + if (selectText) { + // Mark text as selected ... + if (textareaElem.createTextRange) { + var rang = textareaElem.createTextRange(); + rang.select(); + rang.move("character", textareaElem.value.length); } else { - range.move("character", pos); - range.select(); + textareaElem.setSelectionRange(0, textareaElem.value.length); + } + + } else { + // Move the cursor to the last character .. + if (textareaElem.createTextRange) { + var range = textareaElem.createTextRange(); + range.move("character", textareaElem.value.length); + } else { + textareaElem.selectionStart = textareaElem.value.length; } } - else if (!selectText) { - textareaElem.setSelectionRange(0, textareaElem.value.length); - } + }, close : function(update) { diff --git a/mindplot/src/main/javascript/TextEditor.js b/mindplot/src/main/javascript/TextEditor.js index afd01666..fb3caf33 100644 --- a/mindplot/src/main/javascript/TextEditor.js +++ b/mindplot/src/main/javascript/TextEditor.js @@ -161,9 +161,9 @@ mindplot.TextEditor = new Class({ var elemSize = topic.getSize(); this._setEditorSize(elemSize.width, elemSize.height); - var inputElem = this._getTextareaElem(); - inputElem.focus(); - this._changeCursor(inputElem, $defined(defaultText)); + var textareaElem = this._getTextareaElem(); + textareaElem.focus(); + this._positionCursor(textareaElem, !$defined(defaultText)); }.bind(this); @@ -225,7 +225,7 @@ mindplot.TextEditor = new Class({ this._containerElem.style.height = this._size.height + "px"; }, - _changeCursor : function(inputElem, selectText) { + _positionCursor : function(inputElem, selectText) { // Select text if it's required ... if (inputElem.createTextRange) //ie {