diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js index 713e7ac691..b955561019 100644 --- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js @@ -255,7 +255,10 @@ define([ if (me.api) { me.api.isTextAreaBlur = false; if (e.target.localName == 'canvas' && !me.isEditFormula) { - documentHolderEl.focus(); + if (me._preventClick) + me._preventClick = false; + else + documentHolderEl.focus(); } } } @@ -303,7 +306,8 @@ define([ this.api.asc_registerCallback('asc_onSetAFDialog', _.bind(this.onApiAutofilter, this)); this.api.asc_registerCallback('asc_onEditCell', _.bind(this.onApiEditCell, this)); this.api.asc_registerCallback('asc_onLockDefNameManager', _.bind(this.onLockDefNameManager, this)); - this.api.asc_registerCallback('asc_onEntriesListMenu', _.bind(this.onEntriesListMenu, this)); // Alt + Down + this.api.asc_registerCallback('asc_onEntriesListMenu', _.bind(this.onEntriesListMenu, this, false)); // Alt + Down + this.api.asc_registerCallback('asc_onValidationListMenu', _.bind(this.onEntriesListMenu, this, true)); this.api.asc_registerCallback('asc_onFormulaCompleteMenu', _.bind(this.onFormulaCompleteMenu, this)); this.api.asc_registerCallback('asc_onShowSpecialPasteOptions', _.bind(this.onShowSpecialPasteOptions, this)); this.api.asc_registerCallback('asc_onHideSpecialPasteOptions', _.bind(this.onHideSpecialPasteOptions, this)); @@ -1943,13 +1947,18 @@ define([ } }, - onEntriesListMenu: function(textarr) { + onEntriesListMenu: function(validation, textarr) { if (textarr && textarr.length>0) { var me = this, documentHolderView = me.documentHolder, menu = documentHolderView.entriesMenu, menuContainer = documentHolderView.cmpEl.find(Common.Utils.String.format('#menu-container-{0}', menu.id)); + if (validation && menu.isVisible()) { + menu.hide(); + return; + } + for (var i = 0; i < menu.items.length; i++) { menu.removeItem(menu.items[i]); i--; @@ -1982,6 +1991,8 @@ define([ showPoint = [coord.asc_getX() + offset.left, (coord.asc_getY() < 0 ? 0 : coord.asc_getY()) + coord.asc_getHeight() + offset.top]; menuContainer.css({left: showPoint[0], top : showPoint[1]}); + me._preventClick = validation; + validation && menuContainer.attr('data-value', 'prevent-canvas-click'); menu.show(); menu.alignPosition(); @@ -1990,7 +2001,7 @@ define([ }, 10); } else { this.documentHolder.entriesMenu.hide(); - Common.UI.warning({ + !validation && Common.UI.warning({ title: this.notcriticalErrorTitle, maxwidth: 600, msg : this.txtNoChoices,