Added event closing

This commit is contained in:
Robin Riclet 2017-04-04 15:05:24 +02:00
parent a2a5ae7f3c
commit cc838640a5
2 changed files with 6 additions and 4 deletions

View file

@ -148,6 +148,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) => { ... });`
## Drag and drop support ## Drag and drop support
@ -182,4 +183,4 @@ var tabGroup = new TabGroup({
## License ## License
The MIT License (MIT) - Copyright (c) 2016 Thomas Brouard The MIT License (MIT) - Copyright (c) 2016 Thomas Brouard

View file

@ -225,6 +225,7 @@ class Tab extends EventEmitter {
} }
close (force) { close (force) {
this.emit("closing", this);
if (this.isClosed || (!this.closable && !force)) return; if (this.isClosed || (!this.closable && !force)) return;
this.isClosed = true; this.isClosed = true;
let tabGroup = this.tabGroup; let tabGroup = this.tabGroup;
@ -294,13 +295,13 @@ const TabPrivate = {
initWebview: function () { initWebview: function () {
this.webview = document.createElement("webview"); this.webview = document.createElement("webview");
const tabWebviewDidFinishLoadHandler = function (e) { const tabWebviewDidFinishLoadHandler = function (e) {
this.emit("webview-ready", this); this.emit("webview-ready", this);
}; };
this.webview.addEventListener("did-finish-load", tabWebviewDidFinishLoadHandler.bind(this), false); this.webview.addEventListener("did-finish-load", tabWebviewDidFinishLoadHandler.bind(this), false);
this.webview.classList.add(this.tabGroup.options.viewClass); this.webview.classList.add(this.tabGroup.options.viewClass);
if (this.webviewAttributes) { if (this.webviewAttributes) {
let attrs = this.webviewAttributes; let attrs = this.webviewAttributes;
@ -308,7 +309,7 @@ const TabPrivate = {
this.webview.setAttribute(key, attrs[key]); this.webview.setAttribute(key, attrs[key]);
} }
} }
this.tabGroup.viewContainer.appendChild(this.webview); this.tabGroup.viewContainer.appendChild(this.webview);
} }
}; };