mirror of
https://ark.sudovanilla.org/Korbs/electron-tabs.git
synced 2024-12-23 03:53:53 +00:00
Add a way to abort closing (#53)
This commit is contained in:
parent
601c7fc24c
commit
a34fc68469
|
@ -227,7 +227,7 @@ The following events are available:
|
||||||
* `tab.on("flash", (tab) => { ... });`
|
* `tab.on("flash", (tab) => { ... });`
|
||||||
* `tab.on("unflash", (tab) => { ... });`
|
* `tab.on("unflash", (tab) => { ... });`
|
||||||
* `tab.on("close", (tab) => { ... });`
|
* `tab.on("close", (tab) => { ... });`
|
||||||
* `tab.on("closing", (tab) => { ... });`
|
* `tab.on("closing", (tab, abort) => { ... });` (Use `abort()` function to cancel closing)
|
||||||
|
|
||||||
## Drag and drop support
|
## Drag and drop support
|
||||||
|
|
||||||
|
|
10
index.js
10
index.js
|
@ -342,14 +342,20 @@ class Tab extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
close (force) {
|
close (force) {
|
||||||
this.emit("closing", this);
|
const abortController = new AbortController();
|
||||||
if (this.isClosed || (!this.closable && !force)) return;
|
const abort = () => abortController.abort();
|
||||||
|
this.emit("closing", this, abort);
|
||||||
|
|
||||||
|
const abortSignal = abortController.signal;
|
||||||
|
if (this.isClosed || (!this.closable && !force) || abortSignal.aborted) return;
|
||||||
|
|
||||||
this.isClosed = true;
|
this.isClosed = true;
|
||||||
let tabGroup = this.tabGroup;
|
let tabGroup = this.tabGroup;
|
||||||
tabGroup.tabContainer.removeChild(this.tab);
|
tabGroup.tabContainer.removeChild(this.tab);
|
||||||
tabGroup.viewContainer.removeChild(this.webview);
|
tabGroup.viewContainer.removeChild(this.webview);
|
||||||
let activeTab = this.tabGroup.getActiveTab();
|
let activeTab = this.tabGroup.getActiveTab();
|
||||||
TabGroupPrivate.removeTab.bind(tabGroup)(this, true);
|
TabGroupPrivate.removeTab.bind(tabGroup)(this, true);
|
||||||
|
|
||||||
this.emit("close", this);
|
this.emit("close", this);
|
||||||
|
|
||||||
if (activeTab.id === this.id) {
|
if (activeTab.id === this.id) {
|
||||||
|
|
Loading…
Reference in a new issue