summaryrefslogtreecommitdiff
path: root/src/client_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2014-08-12 19:24:09 +0100
committerMaxime Coste <frrrwww@gmail.com>2014-08-12 19:24:09 +0100
commit2204b7cf0667cc1124606c9882aba82dcf650fc3 (patch)
tree8a892df4dbf8cacc8178f12ced9a61570e463750 /src/client_manager.cc
parente2b3dd0ca4b71fd7cfcceeba35b97497631e72bd (diff)
Defer deletion of buffers to after the event loop
We can have SelectionList in flights on the buffer, so mark it for deletion by moving it in a buffer trash, and effectively delete it later, at a point where there should not be any further access to it.
Diffstat (limited to 'src/client_manager.cc')
-rw-r--r--src/client_manager.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/client_manager.cc b/src/client_manager.cc
index ac9c8452..3c1fb086 100644
--- a/src/client_manager.cc
+++ b/src/client_manager.cc
@@ -170,6 +170,12 @@ void ClientManager::redraw_clients() const
client->redraw_ifn();
}
+void ClientManager::clear_mode_trashes() const
+{
+ for (auto& client : m_clients)
+ client->input_handler().clear_mode_trash();
+}
+
CandidateList ClientManager::complete_client_name(StringView prefix,
ByteCount cursor_pos) const
{