From 528be20607c1d6d20adf8dec4bbda79432b4ebd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petar=20Kapri=C5=A1?= Date: Sun, 3 Oct 2021 23:38:07 +0200 Subject: [PATCH] Enable emptying of command buffer with escape key This patch is meant to allow the user to cancel a command they've partially written in the session buffer. For example, if a user in zathura has mistakenly typed the `g' key instead of `G', they can cancel their partial command by pressing the Escape key. --- girara/callbacks.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/girara/callbacks.c b/girara/callbacks.c index a6395f3..0fdf821 100644 --- a/girara/callbacks.c +++ b/girara/callbacks.c @@ -149,6 +149,18 @@ girara_callback_view_key_press_event(GtkWidget* widget, session_private->buffer.command = g_string_append_c(session_private->buffer.command, keyval); } + if (session->events.buffer_changed != NULL) { + session->events.buffer_changed(session); + } + } else if (keyval == GDK_KEY_Escape) { + if (session_private->buffer.command != NULL) { + g_string_free(session_private->buffer.command, TRUE); + session_private->buffer.command = NULL; + } + if (session->global.buffer != NULL) { + g_string_free(session->global.buffer, TRUE); + session->global.buffer = NULL; + } if (session->events.buffer_changed != NULL) { session->events.buffer_changed(session); }