Commit 7f3a854b authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

delete attachEvent

Правка для закрытия редактора ячейки
Правка для открытия редактора при вводе символа и при нажатии backspace


git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@53406 954022d7-b5bf-4e40-9824-e11837661b57
parent a67d226b
......@@ -3064,12 +3064,7 @@ function DrawingObjects() {
// Upload event
if (window.addEventListener) {
window.addEventListener("message", this._uploadMessage, false);
}
else {
if (window.attachEvent) {
window.attachEvent("onmessage", this._uploadMessage);
}
window.addEventListener("message", _this._uploadMessage, false);
}
_this.shiftMap = {};
......
......@@ -1582,11 +1582,10 @@
/** @param event {jQuery.Event} */
_onWindowKeyDown: function (event) {
var t = this, kind = undefined, hieroglyph = false;
var wrap = t.textFlags.wrapText || t.textFlags.wrapOnlyNL;
function tryCloseEditor() {
var r = t.close(true);
if (r) { $(window).trigger(event); }
if (t.close(true))
t.handlers.trigger("applyCloseEvent", event);
}
if (!t.isOpened || !t.enableKeyEvents) {return true;}
......
......@@ -247,7 +247,7 @@
},
// Будем делать dblClick как в Excel
doMouseDblClick: function (event, isHideCursor, isCoord) {
doMouseDblClick: function (event, isHideCursor) {
var t = this;
// Для формулы не нужно выходить из редактирования ячейки
......@@ -265,15 +265,11 @@
return;
setTimeout(function () {
t.isCellEditMode = true;
var coord = t._getCoordinates(event);
t.handlers.trigger("mouseDblClick", coord.x, coord.y, isHideCursor, isCoord, function (resized) {
if (resized) {
// Мы изменяли размеры колонки/строки, не редактируем ячейку
t.isCellEditMode = false;
// Обновим состояние курсора
t.handlers.trigger("updateWorksheet", t.element, coord.x, coord.y, event.ctrlKey, function(info){t.targetInfo = info;});
}
t.handlers.trigger("mouseDblClick", coord.x, coord.y, isHideCursor, function () {
// Мы изменяли размеры колонки/строки, не редактируем ячейку. Обновим состояние курсора
t.handlers.trigger("updateWorksheet", t.element, coord.x, coord.y, event.ctrlKey,
function (info) {t.targetInfo = info;});
});
}, 100);
......@@ -657,11 +653,8 @@
if (isViewerMode || t.isCellEditMode || t.isSelectionDialogMode) {return true;}
// При backspace фокус не в редакторе (стираем содержимое)
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true, /*isHideCursor*/undefined,
function (res) {
if (res)
$(window).trigger(event);
});
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true,
/*isHideCursor*/undefined, /*callback*/undefined, event);
return true;
case 46: // Del
......@@ -947,11 +940,8 @@
if (!t.isCellEditMode) {
// При нажатии символа, фокус не ставим
// Очищаем содержимое ячейки
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true, /*isHideCursor*/undefined,
function (res) {
if (res)
$(window).trigger(event);
});
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true,
/*isHideCursor*/undefined, /*callback*/undefined, event);
}
return true;
},
......@@ -1143,7 +1133,7 @@
this.isDblClickInMouseDown = true;
// Нам нужно обработать эвент браузера о dblClick (если мы редактируем ячейку, то покажем курсор, если нет - то просто ничего не произойдет)
this.isDoBrowserDblClick = true;
this.doMouseDblClick(event, /*isHideCursor*/false, /*isCoord*/true);
this.doMouseDblClick(event, /*isHideCursor*/false);
// Обнуляем координаты
this.mouseDownLastCord = null;
return;
......@@ -1416,7 +1406,7 @@
// Браузер не поддерживает свойство detail (будем делать по координатам)
if (false === this.isDblClickInMouseDown)
return this.doMouseDblClick(event, /*isHideCursor*/false, /*isCoord*/true);
return this.doMouseDblClick(event, /*isHideCursor*/false);
this.isDblClickInMouseDown = false;
......
......@@ -391,7 +391,8 @@
"updateUndoRedoChanged" : function (bCanUndo, bCanRedo) {
self.handlers.trigger("asc_onCanUndoChanged", bCanUndo);
self.handlers.trigger("asc_onCanRedoChanged", bCanRedo);
}
},
"applyCloseEvent" : function () {self.controller._onWindowKeyDown.apply(self.controller, arguments);}
},
/*settings*/{
font: this.defaultFont
......@@ -800,46 +801,40 @@
},
// Double click
_onMouseDblClick: function (x, y, isHideCursor, isCoord, callback) {
var res = false;
_onMouseDblClick: function (x, y, isHideCursor, callback) {
var ws = this.getWorksheet();
var ct = ws.getCursorTypeFromXY(x, y, this.controller.settings.isViewerMode);
if (ct.target === "colresize" || ct.target === "rowresize") {
res = true;
ct.target === "colresize" ? ws.optimizeColWidth(ct.col) : ws.optimizeRowHeight(ct.row);
asc_applyFunction(callback, res);
asc_applyFunction(callback);
} else {
if (ct.col >=0 && ct.row >= 0) {
this.controller.setStrictClose( !ws._isCellEmpty(ct.col, ct.row) );
}
// Для нажатия на колонку/строку/all обрабатывать dblClick не нужно
if ("colheader" === ct.target || "rowheader" === ct.target || "corner" === ct.target) {
res = true;
asc_applyFunction(callback, res);
asc_applyFunction(callback);
return;
}
if ( isCoord && (ws.objectRender.checkCursorDrawingObject(x, y)) ) {
res = true;
asc_applyFunction(callback, res);
if (ws.objectRender.checkCursorDrawingObject(x, y)) {
asc_applyFunction(callback);
return;
}
// При dbl клике фокус выставляем в зависимости от наличия текста в ячейке
this._onEditCell (x, y, /*isCoord*/isCoord,/*isFocus*/undefined, /*isClearCell*/undefined,
/*isHideCursor*/isHideCursor, /*callback*/ function (val) {
asc_applyFunction(callback, !val);
});
this._onEditCell (x, y, /*isCoord*/true, /*isFocus*/undefined, /*isClearCell*/undefined,
/*isHideCursor*/isHideCursor);
}
},
_onEditCell: function (x, y, isCoord, isFocus, isClearCell, isHideCursor, callback) {
_onEditCell: function (x, y, isCoord, isFocus, isClearCell, isHideCursor, callback, event) {
var t = this;
// Проверка глобального лока
if (this.collaborativeEditing.getGlobalLock())
return false;
return;
var ws = t.getWorksheet();
var activeCellRange = ws.getActiveCell(x, y, isCoord);
......@@ -863,6 +858,14 @@
t.input.disabled = false;
t.handlers.trigger("asc_onEditCell", c_oAscCellEditorState.editStart);
// Эвент от предыдущего нажатия на символ или на backspace
if (event) {
if ("keydown" === event.type)
t.cellEditor._onWindowKeyDown(event);
else if ("keypress" === event.type)
t.cellEditor._onWindowKeyPress(event);
}
// Эвент на обновление состояния редактора
t.cellEditor._updateEditorState();
asc_applyFunction(callback, true);
......@@ -870,7 +873,6 @@
var editLockCallback = function (res) {
if (!res) {
// ToDo Закрыть редактор
t.controller.setCellEditMode(false);
t.controller.setStrictClose(false);
t.controller.setFormulaEditMode(false);
......@@ -895,7 +897,6 @@
if (ws._isLockedCells(activeCellRange, /*subType*/null, editLockCallback))
editFunction();
}
return true;
},
_onStopCellEditing: function () {
......
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