summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2019-04-08 22:32:30 +1000
committerMaxime Coste <mawww@kakoune.org>2019-04-08 22:32:30 +1000
commitf732ea4efb13ced7055a7cc82d30c6cff0a558d3 (patch)
treea366e80f348490928ef255bfab9eb82049413074
parent69663bdc812cd91d4a7cfe7d8b88b55a0b6d90b1 (diff)
Refactor ClientManager::clear
-rw-r--r--src/client_manager.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/client_manager.cc b/src/client_manager.cc
index 9ca5f555..9dd32df5 100644
--- a/src/client_manager.cc
+++ b/src/client_manager.cc
@@ -19,11 +19,10 @@ ClientManager::~ClientManager()
void ClientManager::clear()
{
- // So that clients destructor find the client manager empty
- // so that local UI does not fork.
- ClientList clients = std::move(m_clients);
- clients.clear();
+ while (not m_clients.empty())
+ remove_client(*m_clients.front(), true, 0);
m_client_trash.clear();
+
for (auto& window : m_free_windows)
window.window->run_hook_in_own_context(Hook::WinClose,
window.window->buffer().name());