From a6982bcc3bf7dce09be61eb09fba946ef5c92b30 Mon Sep 17 00:00:00 2001
From: Přemysl Eric Janouch 
Date: Thu, 16 Sep 2021 19:43:36 +0200
Subject: Make  and  quit, update README
---
 README.adoc | 3 +++
 fastiv.c    | 8 ++++++++
 2 files changed, 11 insertions(+)
diff --git a/README.adoc b/README.adoc
index ed5f29f..111380d 100644
--- a/README.adoc
+++ b/README.adoc
@@ -29,6 +29,9 @@ Low priority:
  - display 16-bit pictures smoothly, using the 30-bit depth under X.org
  - make RAW as fast as it can possibly be
  - load everything that resembles a picture, potentially even play video
+ - port to something less hostile than the current GNOME stack, such as SDL,
+   although it may involve a lot of reimplemented code,
+   or result in reduced functionality
 
 Non-goals:
 
diff --git a/fastiv.c b/fastiv.c
index 82d518b..98bdf91 100644
--- a/fastiv.c
+++ b/fastiv.c
@@ -84,6 +84,14 @@ main(int argc, char *argv[])
 	g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
 	gtk_container_add(GTK_CONTAINER(window), view);
 
+	// The references to closures are initially floating and sunk on connect.
+	GtkAccelGroup *accel_group = gtk_accel_group_new();
+	gtk_accel_group_connect(accel_group, GDK_KEY_Escape, 0, 0,
+		g_cclosure_new(G_CALLBACK(gtk_main_quit), NULL, NULL));
+	gtk_accel_group_connect(accel_group, GDK_KEY_q, 0, 0,
+		g_cclosure_new(G_CALLBACK(gtk_main_quit), NULL, NULL));
+	gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
+
 	// TODO(p): Load directory entries, store in `g`.
 	//  - Only when there's just one filename.
 	//     - stat() it if it's a dictionary or a filename;
-- 
cgit v1.2.3-70-g09d2