mirror of
https://github.com/ONLYOFFICE/sdkjs.git
synced 2026-02-10 18:15:19 +08:00
Add callback for safe destroy window
This commit is contained in:
@ -3408,6 +3408,11 @@
|
||||
if (null != this.pluginsManager)
|
||||
this.pluginsManager.buttonClick(id, guid, windowId);
|
||||
};
|
||||
baseEditorsApi.prototype.asc_pluginButtonDockChanged = function(type, guid, windowId, callback)
|
||||
{
|
||||
if (null != this.pluginsManager)
|
||||
this.pluginsManager.onPluginWindowDockChanged(type, guid, windowId, callback);
|
||||
};
|
||||
|
||||
baseEditorsApi.prototype.asc_pluginEnableMouseEvents = function(isEnable)
|
||||
{
|
||||
@ -5571,6 +5576,7 @@
|
||||
prot['asc_getInputLanguage'] = prot.asc_getInputLanguage;
|
||||
|
||||
prot['setPluginsOptions'] = prot.setPluginsOptions;
|
||||
prot['asc_pluginButtonDockChanged'] = prot.asc_pluginButtonDockChanged;
|
||||
|
||||
// passwords
|
||||
prot["asc_setCurrentPassword"] = prot.asc_setCurrentPassword;
|
||||
|
||||
@ -2094,6 +2094,25 @@
|
||||
{
|
||||
this.sendEvent("asc_onError", error, level);
|
||||
};
|
||||
|
||||
/**
|
||||
* Callback from dockChangedEvents.
|
||||
* @memberof Api
|
||||
* @typeofeditors ["CDE", "CSE", "CPE", "PDF"]
|
||||
* @param {string} windowID - The frame ID.
|
||||
* @alias OnWindowDockChangedCallback
|
||||
* @since 8.2.2
|
||||
*/
|
||||
Api.prototype["pluginMethod_OnWindowDockChangedCallback"] = function(windowID)
|
||||
{
|
||||
let key = window.g_asc_plugins.getCurrentPluginGuid() + "_" + windowID;
|
||||
if (window.g_asc_plugins.dockCallbacks[key])
|
||||
{
|
||||
window.g_asc_plugins.dockCallbacks[key]();
|
||||
delete window.g_asc_plugins.dockCallbacks[key];
|
||||
}
|
||||
};
|
||||
|
||||
})(window);
|
||||
|
||||
|
||||
|
||||
@ -162,6 +162,8 @@
|
||||
"onDocumentContentReady" : true
|
||||
};
|
||||
this.mainEvents = {};
|
||||
|
||||
this.dockCallbacks = {};
|
||||
}
|
||||
|
||||
CPluginsManager.prototype =
|
||||
@ -681,6 +683,24 @@
|
||||
return needsGuids;
|
||||
},
|
||||
|
||||
onPluginWindowDockChanged : function(type, guid, windowId, callback)
|
||||
{
|
||||
let runObject = this.runnedPluginsMap[guid];
|
||||
if (!runObject)
|
||||
return;
|
||||
|
||||
this.dockCallbacks[guid + "_" + windowId] = callback;
|
||||
|
||||
let pluginData = new CPluginData();
|
||||
pluginData.setAttribute("guid", guid);
|
||||
pluginData.setAttribute("type", "onWindowEvent");
|
||||
pluginData.setAttribute("windowID", windowId);
|
||||
pluginData.setAttribute("eventName", "onDockedChanged");
|
||||
pluginData.setAttribute("eventData", type);
|
||||
|
||||
this.sendMessageToFrame(runObject.isConnector ? "" : runObject.frameId, pluginData);
|
||||
},
|
||||
|
||||
getPluginOptions : function(guid)
|
||||
{
|
||||
let options = this.api.externalPluginsOptions;
|
||||
|
||||
Reference in New Issue
Block a user