Commit 41ee2f0c authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Поправил баг http://bugzserver/show_bug.cgi?id=25957

Также была проблема при отпускании мышки на меню и последующем вводе.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57786 954022d7-b5bf-4e40-9824-e11837661b57
parent f594221e
...@@ -980,47 +980,36 @@ ...@@ -980,47 +980,36 @@
/** @param event {KeyboardEvent} */ /** @param event {KeyboardEvent} */
asc_CEventsController.prototype._onWindowKeyPress = function (event) { asc_CEventsController.prototype._onWindowKeyPress = function (event) {
var t = this;
// Нельзя при отключенных эвентах возвращать false (это касается и ViewerMode) // Нельзя при отключенных эвентах возвращать false (это касается и ViewerMode)
if (!t.enableKeyEvents) {return true;} if (!this.enableKeyEvents) {return true;}
// не вводим текст в режиме просмотра // не вводим текст в режиме просмотра
// если в FF возвращать false, то отменяется дальнейшая обработка серии keydown -> keypress -> keyup // если в FF возвращать false, то отменяется дальнейшая обработка серии keydown -> keypress -> keyup
// и тогда у нас не будут обрабатываться ctrl+c и т.п. события // и тогда у нас не будут обрабатываться ctrl+c и т.п. события
if (t.settings.isViewerMode || t.isSelectionDialogMode || t.isMousePressed) {return true;} if (this.settings.isViewerMode || this.isSelectionDialogMode) {return true;}
var graphicObjects = t.handlers.trigger("getSelectedGraphicObjects");
if ( !t.isMousePressed && graphicObjects.length && t.enableKeyEvents ) {
if (t.skipKeyPress || event.which < 32) { // Mozilla Firefox Fix #20080 (Ctrl+C, Ctrl+V, Ctrl+X)
t.skipKeyPress = true;
return true;
}
if (t.isCellEditMode) {
t.handlers.trigger("stopCellEditing");
t.isCellEditMode = false;
}
if (t.handlers.trigger("graphicObjectWindowKeyPress", event))
return true;
}
// Для таких браузеров, которые не присылают отжатие левой кнопки мыши для двойного клика, при выходе из // Для таких браузеров, которые не присылают отжатие левой кнопки мыши для двойного клика, при выходе из
// окна редактора и отпускания кнопки, будем отрабатывать выход из окна (только Chrome присылает эвент MouseUp даже при выходе из браузера) // окна редактора и отпускания кнопки, будем отрабатывать выход из окна (только Chrome присылает эвент MouseUp даже при выходе из браузера)
this.showCellEditorCursor(); this.showCellEditorCursor();
if (t.isCellEditMode && !t.hasFocus || !t.enableKeyEvents || t.isSelectMode) { // Не можем вводить когда селектим или когда совершаем действия с объектом
if (this.isCellEditMode && !this.hasFocus || this.isSelectMode ||
!this.handlers.trigger('canReceiveKeyPress'))
return true; return true;
}
if (t.skipKeyPress || event.which < 32) { if (this.skipKeyPress || event.which < 32) {
t.skipKeyPress = true; this.skipKeyPress = true;
return true; return true;
} }
if (!t.isCellEditMode) { var graphicObjects = this.handlers.trigger("getSelectedGraphicObjects");
if (graphicObjects.length && this.handlers.trigger("graphicObjectWindowKeyPress", event))
return true;
if (!this.isCellEditMode) {
// При нажатии символа, фокус не ставим // При нажатии символа, фокус не ставим
// Очищаем содержимое ячейки // Очищаем содержимое ячейки
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true, this.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true,
/*isHideCursor*/undefined, /*isQuickInput*/true, /*callback*/undefined, event); /*isHideCursor*/undefined, /*isQuickInput*/true, /*callback*/undefined, event);
} }
return true; return true;
...@@ -1337,8 +1326,7 @@ ...@@ -1337,8 +1326,7 @@
this.handlers.trigger("graphicObjectMouseUp", event, coord.x, coord.y); this.handlers.trigger("graphicObjectMouseUp", event, coord.x, coord.y);
this.isMouseDownMode = false; this.isMouseDownMode = false;
this._changeSelectionDone(event); this._changeSelectionDone(event);
if(this.view && this.view.Api && this.view.Api.isStartAddShape) if(asc["editor"].isStartAddShape) {
{
event.preventDefault && event.preventDefault(); event.preventDefault && event.preventDefault();
event.stopPropagation && event.stopPropagation(); event.stopPropagation && event.stopPropagation();
} }
......
...@@ -318,6 +318,7 @@ ...@@ -318,6 +318,7 @@
"getGraphicsInfo": function () {return self._onGetGraphicsInfo.apply(self, arguments);}, "getGraphicsInfo": function () {return self._onGetGraphicsInfo.apply(self, arguments);},
"getSelectedGraphicObjects": function () {return self._onGetSelectedGraphicObjects.apply(self, arguments);}, "getSelectedGraphicObjects": function () {return self._onGetSelectedGraphicObjects.apply(self, arguments);},
"updateSelectionShape": function () {return self._onUpdateSelectionShape.apply(self, arguments);}, "updateSelectionShape": function () {return self._onUpdateSelectionShape.apply(self, arguments);},
"canReceiveKeyPress": function () {return self.getWorksheet().objectRender.controller.canReceiveKeyPress()},
// Frozen anchor // Frozen anchor
"moveFrozenAnchorHandle": function () {self._onMoveFrozenAnchorHandle.apply(self, arguments);}, "moveFrozenAnchorHandle": function () {self._onMoveFrozenAnchorHandle.apply(self, arguments);},
......
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