Commit 6e0c27bc authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Добавил обработку ввода иероглифов в редактор (это возможно только при вводе в...

Добавил обработку ввода иероглифов в редактор (это возможно только при вводе в строку формул. Но есть некоторые проблемы - мы стираем стили в ячейке (если они были для части текста), т.к. берем весь текст из строки ввода и заменяем исходный.
Баг http://bugzserver/show_bug.cgi?id=22369

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@52632 954022d7-b5bf-4e40-9824-e11837661b57
parent 38f7a0e4
......@@ -123,6 +123,7 @@
this.callTopLineMouseup = false;
this.lastKeyCode = undefined;
this.m_nEditorState = null; // Состояние редактора
this.isUpdateValue = true; // Обновлять ли состояние строки при вводе в TextArea
//-----------------
this.init();
......@@ -206,7 +207,8 @@
.off("." + namespace)
.on("focus." + namespace, function () {return t.isOpened ? t._topLineGotFocus.apply(t, arguments) : true;})
.on("mousedown." + namespace, function () {return t.isOpened ? (t.callTopLineMouseup = true, true) : true;})
.on("mouseup." + namespace, function () {return t.isOpened ? t._topLineMouseUp.apply(t, arguments) : true;});
.on("mouseup." + namespace, function () {return t.isOpened ? t._topLineMouseUp.apply(t, arguments) : true;})
.on("input." + namespace, function () {return t._onInputTextArea.apply(t, arguments);});
// check input, it may have zero len, for mobile version
if(t.input[0])
......@@ -1345,7 +1347,7 @@
t.selectionBegin = begPos;
t.selectionEnd = endPos;
t._drawSelection();
if (t.isTopLineActive) {t._updateTopLineCurPos();}
if (t.isTopLineActive && !t.skipTLUpdate) {t._updateTopLineCurPos();}
},
_changeSelection: function (coord) {
......@@ -1846,6 +1848,7 @@
}
//t.setFocus(true);
t.isUpdateValue = false;
t._addChars(String.fromCharCode(event.which));
return t.isTopLineActive ? true : false; // prevent event bubbling
},
......@@ -1935,6 +1938,17 @@
return true;
},
/** @param event {jQuery.Event} */
_onInputTextArea: function (event) {
if (this.isUpdateValue) {
// Для языков с иероглифами не приходят эвенты с клавиатуры, поэтому обработаем здесь
this.skipTLUpdate = true;
this.replaceText(0, this.textRender.getEndOfLine(this.cursorPos), this.input.val());
}
this.isUpdateValue = true;
return true;
},
/** @param event {jQuery.Event} */
_getCoordinates: function (event) {
var t = this;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment