From 7d24873290911e908944ec32f93acb9e6c216e1c Mon Sep 17 00:00:00 2001 From: Simon Steinbeiss Date: Tue, 26 Jan 2021 08:56:17 +0100 Subject: [PATCH] Handle Esc key correctly with hidden filter --- src/process-window.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/process-window.c b/src/process-window.c index a8503a5..7a4e5fb 100644 --- a/src/process-window.c +++ b/src/process-window.c @@ -365,16 +365,22 @@ xtm_process_window_key_pressed (XtmProcessWindow *window, GdkEventKey *event) { gboolean ret = FALSE; - if (event->keyval == GDK_KEY_Escape && gtk_widget_is_focus(GTK_WIDGET(window->filter_entry))) { - gtk_entry_set_text (GTK_ENTRY(window->filter_entry), ""); + if (event->keyval == GDK_KEY_Escape && + gtk_widget_is_focus(GTK_WIDGET (window->filter_entry))) + { + if (xfconf_channel_get_bool (window->channel, SETTING_SHOW_FILTER, FALSE)) + gtk_entry_set_text (GTK_ENTRY(window->filter_entry), ""); + else + g_signal_emit_by_name (window, "delete-event", event, &ret, G_TYPE_BOOLEAN); } else if (event->keyval == GDK_KEY_Escape || - (event->keyval == GDK_KEY_q && (event->state & GDK_CONTROL_MASK))) { - - g_signal_emit_by_name (window, "delete-event", event, &ret, G_TYPE_BOOLEAN); + (event->keyval == GDK_KEY_q && (event->state & GDK_CONTROL_MASK))) + { + g_signal_emit_by_name (window, "delete-event", event, &ret, G_TYPE_BOOLEAN); ret = TRUE; } - else if (event->keyval == GDK_KEY_f && (event->state & GDK_CONTROL_MASK)) { + else if (event->keyval == GDK_KEY_f && (event->state & GDK_CONTROL_MASK)) + { gtk_widget_grab_focus (GTK_WIDGET(window->filter_entry)); xfconf_channel_set_bool (window->channel, SETTING_SHOW_FILTER, TRUE); ret = TRUE;