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