summaryrefslogtreecommitdiff
path: root/src/input_handler.cc
diff options
context:
space:
mode:
authorOlivier Perret <Olivier.Perret@mailbox.org>2017-09-21 11:53:10 +0200
committerOlivier Perret <Olivier.Perret@mailbox.org>2017-09-21 11:53:10 +0200
commita20ecf6b005350b42be60ce74d1c3d0354ee74ee (patch)
tree20c720ac1cb650ac41164423bb5499b3141113d7 /src/input_handler.cc
parent42196b83cfecae7e68aa369f28e668df5dc8ad64 (diff)
Use <esc> to exit on-key modes
Diffstat (limited to 'src/input_handler.cc')
-rw-r--r--src/input_handler.cc40
1 files changed, 21 insertions, 19 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc
index eae424da..65330487 100644
--- a/src/input_handler.cc
+++ b/src/input_handler.cc
@@ -260,15 +260,15 @@ public:
{
on_next_key_with_autoinfo(context(), KeymapMode::None,
[this](Key key, Context& context) {
- if (auto cp = key.codepoint())
- {
- if (*cp <= 127)
- m_params.reg = *cp;
- else
- context.print_status(
- { format("invalid register '{}'", *cp),
- get_face("Error") });
- }
+ auto cp = key.codepoint();
+ if (not cp or key == Key::Escape)
+ return;
+ if (*cp <= 127)
+ m_params.reg = *cp;
+ else
+ context.print_status(
+ { format("invalid register '{}'", *cp),
+ get_face("Error") });
}, "enter target register", register_doc);
}
else
@@ -755,14 +755,14 @@ public:
{
on_next_key_with_autoinfo(context(), KeymapMode::None,
[this](Key key, Context&) {
- if (auto cp = key.codepoint())
- {
- StringView reg = context().main_sel_register_value(String{*cp});
- m_line_editor.insert(reg);
-
- display();
- m_line_changed = true;
- }
+ auto cp = key.codepoint();
+ if (not cp or key == Key::Escape)
+ return;
+ StringView reg = context().main_sel_register_value(String{*cp});
+ m_line_editor.insert(reg);
+
+ display();
+ m_line_changed = true;
}, "enter register name", register_doc);
display();
return;
@@ -1183,8 +1183,10 @@ public:
{
on_next_key_with_autoinfo(context(), KeymapMode::None,
[this](Key key, Context&) {
- if (auto cp = key.codepoint())
- insert(RegisterManager::instance()[*cp].get(context()));
+ auto cp = key.codepoint();
+ if (not cp or key == Key::Escape)
+ return;
+ insert(RegisterManager::instance()[*cp].get(context()));
}, "enter register name", register_doc);
update_completions = false;
}