aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2021-09-16 19:43:36 +0200
committerPřemysl Eric Janouch <p@janouch.name>2021-09-16 19:43:36 +0200
commita6982bcc3bf7dce09be61eb09fba946ef5c92b30 (patch)
treebc9805f1a4cd95ccb043ccd89cfaf4f559626f94
parent57ac392431bf8bf7c32e7204771aca296096672b (diff)
downloadfiv-a6982bcc3bf7dce09be61eb09fba946ef5c92b30.tar.gz
fiv-a6982bcc3bf7dce09be61eb09fba946ef5c92b30.tar.xz
fiv-a6982bcc3bf7dce09be61eb09fba946ef5c92b30.zip
Make <q> and <Escape> quit, update README
-rw-r--r--README.adoc3
-rw-r--r--fastiv.c8
2 files changed, 11 insertions, 0 deletions
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;