summaryrefslogtreecommitdiff
path: root/src/main/completion.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/completion.c')
-rw-r--r--src/main/completion.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/completion.c b/src/main/completion.c
index d777408..7c5de47 100644
--- a/src/main/completion.c
+++ b/src/main/completion.c
@@ -215,7 +215,11 @@ static void open_completion(struct completion_state *state) {
if (!completion_active() || state->target != buffer) {
// clear any previous keymaps
- abort_completion();
+ if (g_state.keymap_id != (uint64_t)-1) {
+ buffer_remove_keymap(g_state.keymap_id);
+ }
+
+ g_state.keymap_id = (uint64_t)-1;
struct keymap km = keymap_create("completion", 8);
struct binding comp_bindings[] = {
@@ -227,6 +231,7 @@ static void open_completion(struct completion_state *state) {
sizeof(comp_bindings) / sizeof(comp_bindings[0]));
state->keymap_id = buffer_add_keymap(buffer, km);
+ state->target = buffer;
}
// need to run next frame to have the correct position