diff options
| author | Maxime Coste <mawww@kakoune.org> | 2023-05-15 21:10:02 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2023-05-21 16:20:51 +1000 |
| commit | cfa658b899b44a8a0f4c7f3dd9811ae0d44ddd3a (patch) | |
| tree | 80613249d2988b09ebc7eaa85a91f811959931f3 /src/event_manager.cc | |
| parent | e140df8f0857125f40f9338450f73ff1ac50664d (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.cc | 8 |
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; } + } |
