Merge pull request #2353 from ONLYOFFICE/fix/prevent-close-on-click

Fix/prevent close on click
This commit is contained in:
Julia Radzhabova
2023-04-21 17:30:12 +03:00
committed by GitHub
4 changed files with 45 additions and 6 deletions

View File

@ -255,6 +255,9 @@ define([
item.on('click', _.bind(me.onItemClick, me));
item.on('toggle', _.bind(me.onItemToggle, me));
});
menuRoot.on( "click", function(e) {
me.trigger('menu:click', this, e);
});
}
if (this.options.maxHeight) {

View File

@ -75,6 +75,8 @@ define([
this._currentParaObjDisabled = false;
this._currLang = {};
this._isDisabled = false;
this._preventCustomClick = null;
this._hasCustomItems = false;
this._docProtection = {
isReadOnly: false,
isReviewOnly: false,
@ -2937,6 +2939,12 @@ define([
var me = this,
lang = me.mode && me.mode.lang ? me.mode.lang.split(/[\-_]/)[0] : 'en';
me._preventCustomClick && clearTimeout(me._preventCustomClick);
me._hasCustomItems && (me._preventCustomClick = setTimeout(function () {
me._preventCustomClick = null;
},500)); // set delay only on update existing items
me._hasCustomItems = true;
var findCustomItem = function(guid, id) {
if (menu && menu.items.length>0) {
for (var i = menu.items.length-1; i >=0 ; i--) {
@ -2957,7 +2965,10 @@ define([
items: []
});
toMenu.on('item:click', function(menu, item, e) {
me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
!me._preventCustomClick && me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
});
toMenu.on('menu:click', function(menu, e) {
me._preventCustomClick && e.stopPropagation();
});
}
items.forEach(function(item) {
@ -3017,7 +3028,7 @@ define([
menu: item.items && item.items.length>=0 ? getMenu(item.items, plugin.guid) : false,
disabled: !!item.disabled
}).on('click', function(item, e) {
me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
!me._preventCustomClick && me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
});
menu.addItem(mnu);
}
@ -3041,6 +3052,7 @@ define([
}
}
}
this._hasCustomItems = false;
},
focus: function() {

View File

@ -64,6 +64,8 @@ define([
me._currLang = {};
me._state = {unitsChanged: true};
me._isDisabled = false;
me._preventCustomClick = null;
me._hasCustomItems = false;
Common.NotificationCenter.on('settings:unitschanged', _.bind(this.unitsChanged, this));
},
@ -2505,6 +2507,12 @@ define([
var me = this,
lang = me.mode && me.mode.lang ? me.mode.lang.split(/[\-_]/)[0] : 'en';
me._preventCustomClick && clearTimeout(me._preventCustomClick);
me._hasCustomItems && (me._preventCustomClick = setTimeout(function () {
me._preventCustomClick = null;
},500)); // set delay only on update existing items
me._hasCustomItems = true;
var findCustomItem = function(guid, id) {
if (menu && menu.items.length>0) {
for (var i = menu.items.length-1; i >=0 ; i--) {
@ -2525,7 +2533,10 @@ define([
items: []
});
toMenu.on('item:click', function(menu, item, e) {
me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
!me._preventCustomClick && me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
});
toMenu.on('menu:click', function(menu, e) {
me._preventCustomClick && e.stopPropagation();
});
}
items.forEach(function(item) {
@ -2585,7 +2596,7 @@ define([
menu: item.items && item.items.length>=0 ? getMenu(item.items, plugin.guid) : false,
disabled: !!item.disabled
}).on('click', function(item, e) {
me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
!me._preventCustomClick && me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
});
menu.addItem(mnu);
}
@ -2609,6 +2620,7 @@ define([
}
}
}
this._hasCustomItems = false;
},
unitsChanged: function(m) {

View File

@ -59,6 +59,8 @@ define([
initialize: function() {
var me = this;
me._preventCustomClick = null;
me._hasCustomItems = false;
this.setApi = function(api) {
me.api = api;
@ -1458,6 +1460,12 @@ define([
var me = this,
lang = me.mode && me.mode.lang ? me.mode.lang.split(/[\-_]/)[0] : 'en';
me._preventCustomClick && clearTimeout(me._preventCustomClick);
me._hasCustomItems && (me._preventCustomClick = setTimeout(function () {
me._preventCustomClick = null;
},500)); // set delay only on update existing items
me._hasCustomItems = true;
var findCustomItem = function(guid, id) {
if (menu && menu.items.length>0) {
for (var i = menu.items.length-1; i >=0 ; i--) {
@ -1478,7 +1486,10 @@ define([
items: []
});
toMenu.on('item:click', function(menu, item, e) {
me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
!me._preventCustomClick && me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
});
toMenu.on('menu:click', function(menu, e) {
me._preventCustomClick && e.stopPropagation();
});
}
items.forEach(function(item) {
@ -1538,7 +1549,7 @@ define([
menu: item.items && item.items.length>=0 ? getMenu(item.items, plugin.guid) : false,
disabled: !!item.disabled
}).on('click', function(item, e) {
me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
!me._preventCustomClick && me.api && me.api.onPluginContextMenuItemClick && me.api.onPluginContextMenuItemClick(item.options.guid, item.value);
});
menu.addItem(mnu);
}
@ -1562,6 +1573,7 @@ define([
}
}
}
this._hasCustomItems = false;
},
txtSort: 'Sort',