Add DestroyAllWindows helper that uses vector copy

This commit is contained in:
Kevin Sawicki 2017-04-06 14:25:22 -07:00
parent bfb9388191
commit 8311aa667c
3 changed files with 11 additions and 2 deletions

View file

@ -71,8 +71,7 @@ void Browser::Exit(mate::Arguments* args) {
} else { } else {
// Unlike Quit(), we do not ask to close window, but destroy the window // Unlike Quit(), we do not ask to close window, but destroy the window
// without asking. // without asking.
for (NativeWindow* window : *window_list) atom::WindowList::DestroyAllWindows();
window->CloseContents(nullptr); // e.g. Destroy()
} }
} }
} }

View file

@ -76,6 +76,13 @@ void WindowList::CloseAllWindows() {
window->Close(); window->Close();
} }
// static
void WindowList::DestroyAllWindows() {
WindowVector windows = GetInstance()->windows_;
for (const auto& window : windows)
window->CloseContents(nullptr); // e.g. Destroy()
}
WindowList::WindowList() { WindowList::WindowList() {
} }

View file

@ -51,6 +51,9 @@ class WindowList {
// Closes all windows. // Closes all windows.
static void CloseAllWindows(); static void CloseAllWindows();
// Destroy all windows.
static void DestroyAllWindows();
private: private:
WindowList(); WindowList();
~WindowList(); ~WindowList();