mirror of
https://github.com/ONLYOFFICE/web-apps.git
synced 2026-07-26 04:54:27 +08:00
Merge pull request #2353 from ONLYOFFICE/fix/prevent-close-on-click
Fix/prevent close on click
This commit is contained in:
@ -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) {
|
||||
|
||||
@ -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() {
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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',
|
||||
|
||||
Reference in New Issue
Block a user