From 65165f935e1928193362d759ddc99315da124221 Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Fri, 6 Feb 2015 00:54:39 -0300 Subject: [PATCH] fix keyboard throubles with ie11 --- .../main/javascript/MultilineTextEditor.js | 27 ++++++++++++++++--- mindplot/src/main/javascript/TextEditor.js | 1 + wise-editor/src/main/webapp/js/editor.js | 1 + 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/mindplot/src/main/javascript/MultilineTextEditor.js b/mindplot/src/main/javascript/MultilineTextEditor.js index c36efdac..8fe7900e 100644 --- a/mindplot/src/main/javascript/MultilineTextEditor.js +++ b/mindplot/src/main/javascript/MultilineTextEditor.js @@ -88,6 +88,17 @@ mindplot.MultilineTextEditor = new Class({ me.close(true); } break; + case 'tab': + event.preventDefault(); + var start = $(this).get(0).selectionStart; + var end = $(this).get(0).selectionEnd; + + // set textarea value to: text before caret + tab + text after caret + $(this).val($(this).val().substring(0, start) + "\t" + $(this).val().substring(end)); + + // put caret at right position again + $(this).get(0).selectionStart = $(this).get(0).selectionEnd = start + 1; + break; } event.stopPropagation(); }); @@ -248,24 +259,32 @@ mindplot.MultilineTextEditor = new Class({ _positionCursor:function (textareaElem, selectText) { textareaElem.focus(); + var lenght = textareaElem.val().length; if (selectText) { // Mark text as selected ... if (textareaElem.createTextRange) { var rang = textareaElem.createTextRange(); rang.select(); - rang.move("character", textareaElem.val().length); + rang.move("character", lenght); } else { - textareaElem[0].setSelectionRange(0, textareaElem.val().length); + textareaElem[0].setSelectionRange(0, lenght); } } else { // Move the cursor to the last character .. if (textareaElem.createTextRange) { var range = textareaElem.createTextRange(); - range.move("character", textareaElem.val().length); + range.move("character", lenght); } else { - textareaElem.selectionStart = textareaElem.val().length; + if (Browser.ie11) { + textareaElem[0].selectionStart = lenght; + textareaElem[0].selectionEnd = lenght; + } else { + textareaElem.selectionStart = lenght; + textareaElem.selectionEnd = lenght; + } + textareaElem.focus(); } } diff --git a/mindplot/src/main/javascript/TextEditor.js b/mindplot/src/main/javascript/TextEditor.js index 651d9143..911c6161 100644 --- a/mindplot/src/main/javascript/TextEditor.js +++ b/mindplot/src/main/javascript/TextEditor.js @@ -16,6 +16,7 @@ * limitations under the License. */ +//FIXME: Not used! mindplot.TextEditor = new Class({ initialize:function(topic) { this._topic = topic; diff --git a/wise-editor/src/main/webapp/js/editor.js b/wise-editor/src/main/webapp/js/editor.js index ec026f45..d9fb73af 100644 --- a/wise-editor/src/main/webapp/js/editor.js +++ b/wise-editor/src/main/webapp/js/editor.js @@ -31,6 +31,7 @@ Browser = { ie6: !window.XMLHttpRequest, ie7: document.all && window.XMLHttpRequest && !XDomainRequest && !window.opera, ie8: document.documentMode==8, + ie11: document.documentMode==11, opera: Boolean(window.opera), chrome: Boolean(window.chrome), safari: window.getComputedStyle && !window.globalStorage && !window.opera,