summaryrefslogtreecommitdiff
path: root/src/event_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2023-05-15 21:10:02 +1000
committerMaxime Coste <mawww@kakoune.org>2023-05-21 16:20:51 +1000
commitcfa658b899b44a8a0f4c7f3dd9811ae0d44ddd3a (patch)
tree80613249d2988b09ebc7eaa85a91f811959931f3 /src/event_manager.cc
parente140df8f0857125f40f9338450f73ff1ac50664d (diff)
Add <c-g> to cancel current operation
The current implementation only does this during regex operations, but should be extensible to other operations that might take a long time by regularly calling EventManager::handle_urgent_events().
Diffstat (limited to 'src/event_manager.cc')
-rw-r--r--src/event_manager.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/event_manager.cc b/src/event_manager.cc
index 891780b2..60c16eae 100644
--- a/src/event_manager.cc
+++ b/src/event_manager.cc
@@ -161,6 +161,13 @@ void EventManager::force_signal(int fd)
m_has_forced_fd = true;
}
+void EventManager::handle_urgent_events()
+{
+ if (has_instance())
+ instance().handle_next_events(EventMode::Urgent, nullptr, false);
+}
+
+
SignalHandler set_signal_handler(int signum, SignalHandler handler)
{
struct sigaction new_action, old_action;
@@ -171,4 +178,5 @@ SignalHandler set_signal_handler(int signum, SignalHandler handler)
sigaction(signum, &new_action, &old_action);
return old_action.sa_handler;
}
+
}