feat: add evt listeners for SetAlwaysOnTop (#14951)
* feat: add evt listeners for SetAlwaysOnTop * only emit one event on AlwaysOnTop change * docs: add new alwaysontop event * dont emit if theres no change * address feedback from review
This commit is contained in:
parent
d810f08b75
commit
27bbf6a3c6
7 changed files with 24 additions and 0 deletions
|
@ -262,6 +262,10 @@ void TopLevelWindow::OnWindowLeaveHtmlFullScreen() {
|
||||||
Emit("leave-html-full-screen");
|
Emit("leave-html-full-screen");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TopLevelWindow::OnWindowAlwaysOnTopChanged() {
|
||||||
|
Emit("always-on-top-changed", IsAlwaysOnTop());
|
||||||
|
}
|
||||||
|
|
||||||
void TopLevelWindow::OnExecuteWindowsCommand(const std::string& command_name) {
|
void TopLevelWindow::OnExecuteWindowsCommand(const std::string& command_name) {
|
||||||
Emit("app-command", command_name);
|
Emit("app-command", command_name);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,7 @@ class TopLevelWindow : public mate::TrackableObject<TopLevelWindow>,
|
||||||
void OnWindowLeaveFullScreen() override;
|
void OnWindowLeaveFullScreen() override;
|
||||||
void OnWindowEnterHtmlFullScreen() override;
|
void OnWindowEnterHtmlFullScreen() override;
|
||||||
void OnWindowLeaveHtmlFullScreen() override;
|
void OnWindowLeaveHtmlFullScreen() override;
|
||||||
|
void OnWindowAlwaysOnTopChanged() override;
|
||||||
void OnExecuteWindowsCommand(const std::string& command_name) override;
|
void OnExecuteWindowsCommand(const std::string& command_name) override;
|
||||||
void OnTouchBarItemResult(const std::string& item_id,
|
void OnTouchBarItemResult(const std::string& item_id,
|
||||||
const base::DictionaryValue& details) override;
|
const base::DictionaryValue& details) override;
|
||||||
|
|
|
@ -537,6 +537,11 @@ void NativeWindow::NotifyWindowLeaveHtmlFullScreen() {
|
||||||
observer.OnWindowLeaveHtmlFullScreen();
|
observer.OnWindowLeaveHtmlFullScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeWindow::NotifyWindowAlwaysOnTopChanged() {
|
||||||
|
for (NativeWindowObserver& observer : observers_)
|
||||||
|
observer.OnWindowAlwaysOnTopChanged();
|
||||||
|
}
|
||||||
|
|
||||||
void NativeWindow::NotifyWindowExecuteWindowsCommand(
|
void NativeWindow::NotifyWindowExecuteWindowsCommand(
|
||||||
const std::string& command) {
|
const std::string& command) {
|
||||||
for (NativeWindowObserver& observer : observers_)
|
for (NativeWindowObserver& observer : observers_)
|
||||||
|
|
|
@ -254,6 +254,7 @@ class NativeWindow : public base::SupportsUserData,
|
||||||
void NotifyWindowLeaveFullScreen();
|
void NotifyWindowLeaveFullScreen();
|
||||||
void NotifyWindowEnterHtmlFullScreen();
|
void NotifyWindowEnterHtmlFullScreen();
|
||||||
void NotifyWindowLeaveHtmlFullScreen();
|
void NotifyWindowLeaveHtmlFullScreen();
|
||||||
|
void NotifyWindowAlwaysOnTopChanged();
|
||||||
void NotifyWindowExecuteWindowsCommand(const std::string& command);
|
void NotifyWindowExecuteWindowsCommand(const std::string& command);
|
||||||
void NotifyTouchBarItemInteraction(const std::string& item_id,
|
void NotifyTouchBarItemInteraction(const std::string& item_id,
|
||||||
const base::DictionaryValue& details);
|
const base::DictionaryValue& details);
|
||||||
|
|
|
@ -83,6 +83,7 @@ class NativeWindowObserver {
|
||||||
virtual void OnWindowLeaveFullScreen() {}
|
virtual void OnWindowLeaveFullScreen() {}
|
||||||
virtual void OnWindowEnterHtmlFullScreen() {}
|
virtual void OnWindowEnterHtmlFullScreen() {}
|
||||||
virtual void OnWindowLeaveHtmlFullScreen() {}
|
virtual void OnWindowLeaveHtmlFullScreen() {}
|
||||||
|
virtual void OnWindowAlwaysOnTopChanged() {}
|
||||||
virtual void OnTouchBarItemResult(const std::string& item_id,
|
virtual void OnTouchBarItemResult(const std::string& item_id,
|
||||||
const base::DictionaryValue& details) {}
|
const base::DictionaryValue& details) {}
|
||||||
virtual void OnNewWindowForTab() {}
|
virtual void OnNewWindowForTab() {}
|
||||||
|
|
|
@ -706,6 +706,9 @@ void NativeWindowViews::SetAlwaysOnTop(bool top,
|
||||||
const std::string& level,
|
const std::string& level,
|
||||||
int relativeLevel,
|
int relativeLevel,
|
||||||
std::string* error) {
|
std::string* error) {
|
||||||
|
if (top != widget()->IsAlwaysOnTop())
|
||||||
|
NativeWindow::NotifyWindowAlwaysOnTopChanged();
|
||||||
|
|
||||||
widget()->SetAlwaysOnTop(top);
|
widget()->SetAlwaysOnTop(top);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -542,6 +542,15 @@ Emitted when the window enters a full-screen state triggered by HTML API.
|
||||||
|
|
||||||
Emitted when the window leaves a full-screen state triggered by HTML API.
|
Emitted when the window leaves a full-screen state triggered by HTML API.
|
||||||
|
|
||||||
|
#### Event: 'always-on-top-changed' _macOS_
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
* `event` Event
|
||||||
|
* `isAlwaysOnTop` Boolean
|
||||||
|
|
||||||
|
Emitted when the window is set or unset to show always on top of other windows.
|
||||||
|
|
||||||
#### Event: 'app-command' _Windows_
|
#### Event: 'app-command' _Windows_
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
Loading…
Reference in a new issue