summaryrefslogtreecommitdiff
path: root/doc/tutorial/src/include/cairo-tutorial-gtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'doc/tutorial/src/include/cairo-tutorial-gtk.h')
-rw-r--r--doc/tutorial/src/include/cairo-tutorial-gtk.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/doc/tutorial/src/include/cairo-tutorial-gtk.h b/doc/tutorial/src/include/cairo-tutorial-gtk.h
index 7be74e21d..cdf96e20a 100644
--- a/doc/tutorial/src/include/cairo-tutorial-gtk.h
+++ b/doc/tutorial/src/include/cairo-tutorial-gtk.h
@@ -17,6 +17,8 @@
*/
#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+
#include <cairo.h>
#ifndef WIDTH
@@ -87,6 +89,18 @@ handle_expose (GtkWidget *widget,
return FALSE;
}
+static gboolean
+handle_key_press (GtkWidget *widget,
+ GdkEventKey *event,
+ gpointer data)
+{
+ if ((event->keyval == GDK_Q ||
+ event->keyval == GDK_q) && (event->state & GDK_CONTROL_MASK))
+ gtk_main_quit ();
+
+ return FALSE;
+}
+
int
main (int argc, char **argv)
{
@@ -108,6 +122,9 @@ main (int argc, char **argv)
g_signal_connect (drawing_area, "expose-event",
G_CALLBACK (handle_expose), NULL);
+ g_signal_connect (window, "key-press-event",
+ G_CALLBACK (handle_key_press), NULL);
+
gtk_widget_show_all (window);
gtk_main ();