[gtk+] font chooser: Make repeated Escape cancel the dialog



commit aa9dd72e8f9bdccd9ea8e6f4f019aa7d037be489
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Aug 10 20:32:22 2015 +0200

    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 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c
index 6f1701f..956119f 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]