Handle Esc key correctly with hidden filter

This commit is contained in:
Simon Steinbeiss
2021-01-26 08:56:17 +01:00
parent 1b0aaad892
commit 7d24873290

View File

@@ -365,16 +365,22 @@ xtm_process_window_key_pressed (XtmProcessWindow *window, GdkEventKey *event)
{ {
gboolean ret = FALSE; gboolean ret = FALSE;
if (event->keyval == GDK_KEY_Escape && gtk_widget_is_focus(GTK_WIDGET(window->filter_entry))) { if (event->keyval == GDK_KEY_Escape &&
gtk_entry_set_text (GTK_ENTRY(window->filter_entry), ""); 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 || else if (event->keyval == GDK_KEY_Escape ||
(event->keyval == GDK_KEY_q && (event->state & GDK_CONTROL_MASK))) { (event->keyval == GDK_KEY_q && (event->state & GDK_CONTROL_MASK)))
{
g_signal_emit_by_name (window, "delete-event", event, &ret, G_TYPE_BOOLEAN); g_signal_emit_by_name (window, "delete-event", event, &ret, G_TYPE_BOOLEAN);
ret = TRUE; 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)); gtk_widget_grab_focus (GTK_WIDGET(window->filter_entry));
xfconf_channel_set_bool (window->channel, SETTING_SHOW_FILTER, TRUE); xfconf_channel_set_bool (window->channel, SETTING_SHOW_FILTER, TRUE);
ret = TRUE; ret = TRUE;