Skip to content

Commit

Permalink
feat: add evt listeners for SetAlwaysOnTop
Browse files Browse the repository at this point in the history
  • Loading branch information
codebytere committed Oct 3, 2018
1 parent a1b2162 commit 26a009c
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 0 deletions.
8 changes: 8 additions & 0 deletions atom/browser/api/atom_api_top_level_window.cc
Expand Up @@ -262,6 +262,14 @@ void TopLevelWindow::OnWindowLeaveHtmlFullScreen() {
Emit("leave-html-full-screen");
}

void TopLevelWindow::OnWindowEnterAlwaysOnTop() {
Emit("enter-always-on-top");
}

void TopLevelWindow::OnWindowLeaveAlwaysOnTop() {
Emit("leave-always-on-top");
}

void TopLevelWindow::OnExecuteWindowsCommand(const std::string& command_name) {
Emit("app-command", command_name);
}
Expand Down
2 changes: 2 additions & 0 deletions atom/browser/api/atom_api_top_level_window.h
Expand Up @@ -77,6 +77,8 @@ class TopLevelWindow : public mate::TrackableObject<TopLevelWindow>,
void OnWindowLeaveFullScreen() override;
void OnWindowEnterHtmlFullScreen() override;
void OnWindowLeaveHtmlFullScreen() override;
void OnWindowEnterAlwaysOnTop() override;
void OnWindowLeaveAlwaysOnTop() override;
void OnExecuteWindowsCommand(const std::string& command_name) override;
void OnTouchBarItemResult(const std::string& item_id,
const base::DictionaryValue& details) override;
Expand Down
10 changes: 10 additions & 0 deletions atom/browser/native_window.cc
Expand Up @@ -537,6 +537,16 @@ void NativeWindow::NotifyWindowLeaveHtmlFullScreen() {
observer.OnWindowLeaveHtmlFullScreen();
}

void NativeWindow::NotifyWindowEnterAlwaysOnTop() {
for (NativeWindowObserver& observer : observers_)
observer.OnWindowEnterAlwaysOnTop();
}

void NativeWindow::NotifyWindowLeaveAlwaysOnTop() {
for (NativeWindowObserver& observer : observers_)
observer.OnWindowLeaveAlwaysOnTop();
}

void NativeWindow::NotifyWindowExecuteWindowsCommand(
const std::string& command) {
for (NativeWindowObserver& observer : observers_)
Expand Down
2 changes: 2 additions & 0 deletions atom/browser/native_window.h
Expand Up @@ -254,6 +254,8 @@ class NativeWindow : public base::SupportsUserData,
void NotifyWindowLeaveFullScreen();
void NotifyWindowEnterHtmlFullScreen();
void NotifyWindowLeaveHtmlFullScreen();
void NotifyWindowEnterAlwaysOnTop();
void NotifyWindowLeaveAlwaysOnTop();
void NotifyWindowExecuteWindowsCommand(const std::string& command);
void NotifyTouchBarItemInteraction(const std::string& item_id,
const base::DictionaryValue& details);
Expand Down
2 changes: 2 additions & 0 deletions atom/browser/native_window_observer.h
Expand Up @@ -83,6 +83,8 @@ class NativeWindowObserver {
virtual void OnWindowLeaveFullScreen() {}
virtual void OnWindowEnterHtmlFullScreen() {}
virtual void OnWindowLeaveHtmlFullScreen() {}
virtual void OnWindowEnterAlwaysOnTop() {}
virtual void OnWindowLeaveAlwaysOnTop() {}
virtual void OnTouchBarItemResult(const std::string& item_id,
const base::DictionaryValue& details) {}
virtual void OnNewWindowForTab() {}
Expand Down
6 changes: 6 additions & 0 deletions atom/browser/native_window_views.cc
Expand Up @@ -706,6 +706,12 @@ void NativeWindowViews::SetAlwaysOnTop(bool top,
const std::string& level,
int relativeLevel,
std::string* error) {
if (top) {
NativeWindow::NotifyWindowEnterAlwaysOnTop();
} else {
NativeWindow::NotifyWindowLeaveAlwaysOnTop();
}

widget()->SetAlwaysOnTop(top);
}

Expand Down

0 comments on commit 26a009c

Please sign in to comment.