diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/dialogs/about.c | 40 |
2 files changed, 44 insertions, 1 deletions
@@ -1,3 +1,8 @@ +14-04-26 Cyrille Bagard <nocbos@gmail.com> + + * src/dialogs/about.c: + Close the 'About' dialog box with the escape key. + 14-04-24 Cyrille Bagard <nocbos@gmail.com> * configure.ac: diff --git a/src/dialogs/about.c b/src/dialogs/about.c index 1a1b064..89c52df 100644 --- a/src/dialogs/about.c +++ b/src/dialogs/about.c @@ -26,6 +26,7 @@ #include <math.h> #include <stdio.h> +#include <gdk/gdkkeysyms.h> #include <i18n.h> @@ -37,11 +38,16 @@ +/* Réagit à l'appui d'une touche sur la fenêtre 'A propos'. */ +static gboolean close_about_window_on_escape(GtkWidget *, GdkEventKey *, gpointer); + + + /****************************************************************************** * * * Paramètres : parent = fenêtre parente à surpasser. * * * -* Description : Construit la fenêtre de sélection des sections. * +* Description : Construit la fenêtre d'informations sur le logiciel. * * * * Retour : Adresse de la fenêtre mise en place. * * * @@ -71,6 +77,8 @@ GtkWidget *create_about_dialog(GtkWindow *parent) gtk_window_set_default_size(GTK_WINDOW(result), 350, 430); gtk_window_set_type_hint(GTK_WINDOW(result), GDK_WINDOW_TYPE_HINT_DIALOG); + g_signal_connect(result, "key_press_event", G_CALLBACK(close_about_window_on_escape), NULL); + gdk_rgba_parse(&color, "black"); gtk_widget_override_background_color(GTK_WIDGET(result), GTK_STATE_FLAG_NORMAL, &color); @@ -126,3 +134,33 @@ GtkWidget *create_about_dialog(GtkWindow *parent) return result; } + + +/****************************************************************************** +* * +* Paramètres : window = fenêtre visée par la procédure. * +* event = informations liées à l'événement. * +* dummy = donnée non utilisée ici. * +* * +* Description : Réagit à l'appui d'une touche sur la fenêtre 'A propos'. * +* * +* Retour : TRUE pour poursuivre la propagation, FALSE autrement. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static gboolean close_about_window_on_escape(GtkWidget *widget, GdkEventKey *event, gpointer dummy) +{ + gboolean result; /* Ordre à retourner */ + + if (event->keyval == GDK_KEY_Escape) + { + gtk_widget_destroy(widget); + result = TRUE; + } + else result = FALSE; + + return result; + +} |