Commit bb33b86c authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Fixed issue #31889

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@68834 954022d7-b5bf-4e40-9824-e11837661b57
parent 6565c4d9
...@@ -308,31 +308,35 @@ ...@@ -308,31 +308,35 @@
CellEditor.prototype.close = function ( saveValue ) { CellEditor.prototype.close = function ( saveValue ) {
var opt = this.options, ret; var opt = this.options, ret;
if ( saveValue && "function" === typeof opt.saveValueCallback && 0 < this.undoList.length ) { if (saveValue && "function" === typeof opt.saveValueCallback) {
var isFormula = this.isFormula();
// Для формул делаем пересчет всегда. Для остального - только если мы изменили что-то. http://bugzserver/show_bug.cgi?id=31889
if (0 < this.undoList.length || isFormula) {
// Делаем замену текста на автодополнение, если есть select и текст полностью совпал. // Делаем замену текста на автодополнение, если есть select и текст полностью совпал.
if ( this.selectionBegin !== this.selectionEnd && !this.isFormula() ) { if (this.selectionBegin !== this.selectionEnd && !isFormula) {
var s = this._getFragmentsText( this.options.fragments ); var s = this._getFragmentsText(this.options.fragments);
if ( !isNumber( s ) ) { if (!isNumber(s)) {
var arrAutoComplete = this._getAutoComplete( s.toLowerCase() ); var arrAutoComplete = this._getAutoComplete(s.toLowerCase());
if ( 1 === arrAutoComplete.length ) { if (1 === arrAutoComplete.length) {
var newValue = arrAutoComplete[0]; var newValue = arrAutoComplete[0];
this.selectionBegin = this.textRender.getBeginOfText(); this.selectionBegin = this.textRender.getBeginOfText();
this.cursorPos = this.selectionEnd = this.textRender.getEndOfText(); this.cursorPos = this.selectionEnd = this.textRender.getEndOfText();
this.noUpdateMode = true; this.noUpdateMode = true;
this._addChars( newValue ); this._addChars(newValue);
this.noUpdateMode = false; this.noUpdateMode = false;
} }
} }
} }
ret = this._wrapFragments( opt.fragments ); // восстанавливаем символы \n ret = this._wrapFragments(opt.fragments); // восстанавливаем символы \n
ret = opt.saveValueCallback( opt.fragments, this.textFlags, /*skip NL check*/ret ); ret = opt.saveValueCallback(opt.fragments, this.textFlags, /*skip NL check*/ret);
if ( !ret ) { if (!ret) {
// При ошибке нужно выставить флаг, чтобы по стрелкам не закрывался редактор // При ошибке нужно выставить флаг, чтобы по стрелкам не закрывался редактор
this.handlers.trigger( 'setStrictClose', true ); this.handlers.trigger('setStrictClose', true);
return false; return false;
} }
} }
}
this.isOpened = false; this.isOpened = false;
......
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