From aa9dd72e8f9bdccd9ea8e6f4f019aa7d037be489 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 10 Aug 2015 20:32:22 +0200 Subject: [PATCH] font chooser: Make repeated Escape cancel the dialog The first Escape clears the search entry, the second Escape closes the dialog. --- gtk/gtkfontchooserwidget.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index 6f1701f80c..956119f341 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -47,6 +47,7 @@ #include "gtktreeview.h" #include "gtkwidget.h" #include "gtksettings.h" +#include "gtkdialog.h" /** * SECTION:gtkfontchooserwidget @@ -310,7 +311,20 @@ static void stop_search_cb (GtkEntry *entry, GtkFontChooserWidget *fc) { - gtk_entry_set_text (entry, ""); + if (gtk_entry_get_text (entry)[0] != 0) + gtk_entry_set_text (entry, ""); + else + { + GtkWidget *dialog; + GtkWidget *button = NULL; + + dialog = gtk_widget_get_ancestor (GTK_WIDGET (fc), GTK_TYPE_DIALOG); + if (dialog) + button = gtk_dialog_get_widget_for_response (GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); + + if (button) + gtk_widget_activate (button); + } } static void