diff --git a/src/main/browsers/runner.ts b/src/main/browsers/runner.ts index d63b7881..b78cf71d 100644 --- a/src/main/browsers/runner.ts +++ b/src/main/browsers/runner.ts @@ -175,31 +175,29 @@ export default () => { const removeView = (window: BrowserWindow) => { if (!view) return; - window.removeBrowserView(view); - if (!view.inDetach) { - window.setBrowserView(null); - view.webContents?.destroy(); - } - - // window.setSize(800, 60); executeHooks('PluginOut', null); - window.webContents?.executeJavaScript(`window.initRubick()`); - view = undefined; + setTimeout(() => { + window.removeBrowserView(view); + if (!view.inDetach) { + window.setBrowserView(null); + view.webContents?.destroy(); + } + window.webContents?.executeJavaScript(`window.initRubick()`); + view = undefined; + }, 0); }; const getView = () => view; const executeHooks = (hook, data) => { - setTimeout(() => { - if (!view) return; - const evalJs = `if(window.rubick && window.rubick.hooks && typeof window.rubick.hooks.on${hook} === 'function' ) { + if (!view) return; + const evalJs = `if(window.rubick && window.rubick.hooks && typeof window.rubick.hooks.on${hook} === 'function' ) { try { window.rubick.hooks.on${hook}(${data ? JSON.stringify(data) : ''}); } catch(e) {} } `; - view.webContents?.executeJavaScript(evalJs); - }, 300); + view.webContents?.executeJavaScript(evalJs); }; return { diff --git a/src/main/common/api.ts b/src/main/common/api.ts index e08f9f34..acefcf70 100644 --- a/src/main/common/api.ts +++ b/src/main/common/api.ts @@ -128,8 +128,8 @@ class API extends DBInstance { } public removePlugin(e, window) { - this.currentPlugin = null; runnerInstance.removeView(window); + this.currentPlugin = null; } public openPluginDevTools() { @@ -211,11 +211,10 @@ class API extends DBInstance { if (!Notification.isSupported()) return; 'string' != typeof body && (body = String(body)); const plugin = this.currentPlugin; - if (!plugin) return; const notify = new Notification({ - title: plugin.pluginName, + title: plugin ? plugin.pluginName : null, body, - icon: plugin.logo, + icon: plugin ? plugin.logo : null, }); notify.show(); }