From 127b2f403b868092813a850d32a7752c2ed4010f Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Thu, 10 Nov 2022 17:14:56 +0100 Subject: [PATCH] [view] try key events only when INSERT_MODE is ON --- src/viewer/text/view.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/viewer/text/view.cpp b/src/viewer/text/view.cpp index 0dd071b9..3672d579 100644 --- a/src/viewer/text/view.cpp +++ b/src/viewer/text/view.cpp @@ -1290,25 +1290,27 @@ try_form_action(struct session *ses, struct document_view *doc_view, return FRAME_EVENT_IGNORED; #ifdef CONFIG_ECMASCRIPT - std::map *mapa = (std::map *)doc_view->document->element_map; + if (ses->insert_mode == INSERT_MODE_ON) { + std::map *mapa = (std::map *)doc_view->document->element_map; - if (mapa) { - auto element = (*mapa).find(link->element_offset); + if (mapa) { + auto element = (*mapa).find(link->element_offset); - if (element != (*mapa).end()) { - const char *event_name = script_event_hook_name[SEVHOOK_ONKEYDOWN]; + if (element != (*mapa).end()) { + const char *event_name = script_event_hook_name[SEVHOOK_ONKEYDOWN]; - check_element_event(element->second, event_name, ev); - event_name = script_event_hook_name[SEVHOOK_ONKEYUP]; - check_element_event(element->second, event_name, ev); + check_element_event(element->second, event_name, ev); + event_name = script_event_hook_name[SEVHOOK_ONKEYUP]; + check_element_event(element->second, event_name, ev); + } } - } - if (!current_link_evhook(doc_view, SEVHOOK_ONKEYDOWN)) { - status = FRAME_EVENT_IGNORED; - } - if (status != FRAME_EVENT_IGNORED && !current_link_evhook(doc_view, SEVHOOK_ONKEYUP)) { - status = FRAME_EVENT_IGNORED; + if (!current_link_evhook(doc_view, SEVHOOK_ONKEYDOWN)) { + status = FRAME_EVENT_IGNORED; + } + if (status != FRAME_EVENT_IGNORED && !current_link_evhook(doc_view, SEVHOOK_ONKEYUP)) { + status = FRAME_EVENT_IGNORED; + } } #endif if (status != FRAME_EVENT_IGNORED) {