Merge pull request #9254 from electron/endsession-event
End session event on browser window
This commit is contained in:
commit
7881376aff
7 changed files with 24 additions and 0 deletions
|
@ -191,6 +191,10 @@ void Window::OnWindowClosed() {
|
||||||
FROM_HERE, GetDestroyClosure());
|
FROM_HERE, GetDestroyClosure());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::OnWindowEndSession() {
|
||||||
|
Emit("session-end");
|
||||||
|
}
|
||||||
|
|
||||||
void Window::OnWindowBlur() {
|
void Window::OnWindowBlur() {
|
||||||
Emit("blur");
|
Emit("blur");
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,7 @@ class Window : public mate::TrackableObject<Window>,
|
||||||
void WillCloseWindow(bool* prevent_default) override;
|
void WillCloseWindow(bool* prevent_default) override;
|
||||||
void WillDestroyNativeObject() override;
|
void WillDestroyNativeObject() override;
|
||||||
void OnWindowClosed() override;
|
void OnWindowClosed() override;
|
||||||
|
void OnWindowEndSession() override;
|
||||||
void OnWindowBlur() override;
|
void OnWindowBlur() override;
|
||||||
void OnWindowFocus() override;
|
void OnWindowFocus() override;
|
||||||
void OnWindowShow() override;
|
void OnWindowShow() override;
|
||||||
|
|
|
@ -474,6 +474,11 @@ void NativeWindow::NotifyWindowClosed() {
|
||||||
observer.OnWindowClosed();
|
observer.OnWindowClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeWindow::NotifyWindowEndSession() {
|
||||||
|
for (NativeWindowObserver& observer : observers_)
|
||||||
|
observer.OnWindowEndSession();
|
||||||
|
}
|
||||||
|
|
||||||
void NativeWindow::NotifyWindowBlur() {
|
void NativeWindow::NotifyWindowBlur() {
|
||||||
for (NativeWindowObserver& observer : observers_)
|
for (NativeWindowObserver& observer : observers_)
|
||||||
observer.OnWindowBlur();
|
observer.OnWindowBlur();
|
||||||
|
|
|
@ -218,6 +218,7 @@ class NativeWindow : public base::SupportsUserData,
|
||||||
// Public API used by platform-dependent delegates and observers to send UI
|
// Public API used by platform-dependent delegates and observers to send UI
|
||||||
// related notifications.
|
// related notifications.
|
||||||
void NotifyWindowClosed();
|
void NotifyWindowClosed();
|
||||||
|
void NotifyWindowEndSession();
|
||||||
void NotifyWindowBlur();
|
void NotifyWindowBlur();
|
||||||
void NotifyWindowFocus();
|
void NotifyWindowFocus();
|
||||||
void NotifyWindowShow();
|
void NotifyWindowShow();
|
||||||
|
|
|
@ -40,6 +40,9 @@ class NativeWindowObserver {
|
||||||
// Called when the window is closed.
|
// Called when the window is closed.
|
||||||
virtual void OnWindowClosed() {}
|
virtual void OnWindowClosed() {}
|
||||||
|
|
||||||
|
// Called when Windows sends WM_ENDSESSION message
|
||||||
|
virtual void OnWindowEndSession() {}
|
||||||
|
|
||||||
// Called when window loses focus.
|
// Called when window loses focus.
|
||||||
virtual void OnWindowBlur() {}
|
virtual void OnWindowBlur() {}
|
||||||
|
|
||||||
|
|
|
@ -147,6 +147,11 @@ bool NativeWindowViews::PreHandleMSG(
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
case WM_ENDSESSION: {
|
||||||
|
if (w_param) {
|
||||||
|
NotifyWindowEndSession();
|
||||||
|
}
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,6 +376,11 @@ window.onbeforeunload = (e) => {
|
||||||
Emitted when the window is closed. After you have received this event you should
|
Emitted when the window is closed. After you have received this event you should
|
||||||
remove the reference to the window and avoid using it any more.
|
remove the reference to the window and avoid using it any more.
|
||||||
|
|
||||||
|
#### Event: 'session-end' _Windows_
|
||||||
|
|
||||||
|
Emitted when window session is going to end due to force shutdown or machine restart
|
||||||
|
or session log off.
|
||||||
|
|
||||||
#### Event: 'unresponsive'
|
#### Event: 'unresponsive'
|
||||||
|
|
||||||
Emitted when the web page becomes unresponsive.
|
Emitted when the web page becomes unresponsive.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue