summaryrefslogtreecommitdiff
path: root/src/client.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.cc')
-rw-r--r--src/client.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/client.cc b/src/client.cc
index 2cb1c973..14b7b7bc 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -194,6 +194,9 @@ void Client::change_buffer(Buffer& buffer, Optional<FunctionRef<void()>> set_sel
if (m_buffer_reload_dialog_opened)
close_buffer_reload_dialog();
+ if (context().buffer().flags() & Buffer::Flags::Locked)
+ throw runtime_error("Changing buffer is not allowed while current buffer is locked");
+
buffer.flags() |= Buffer::Flags::Locked;
OnScopeEnd unlock{[&] { buffer.flags() &= ~Buffer::Flags::Locked; }};