commit 022ad164b6516bbb4c5109e45c68248c17ff7115
parent 71d1f49b960b895f769450c895a010469b2fd9a4
Author: lumidify <nobody@lumidify.org>
Date: Fri, 18 Aug 2023 08:55:37 +0200
Exit when pressing 'q'
Diffstat:
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/LICENSE b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2021-2022 lumidify <nobody@lumidify.org>
+Copyright (c) 2021-2023 lumidify <nobody@lumidify.org>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/croptool.1 b/croptool.1
@@ -1,4 +1,4 @@
-.Dd January 13, 2022
+.Dd August 18, 2023
.Dt CROPTOOL 1
.Os
.Sh NAME
@@ -120,6 +120,8 @@ Delete the cropping rectangle of the current image.
Redraw the window.
This is useful when automatic redrawing is disabled with
.Fl m .
+.It q
+Exit the program.
.El
.Sh MOUSE ACTIONS
.Bl -tag -width Ds
diff --git a/croptool.c b/croptool.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021-2022 lumidify <nobody@lumidify.org>
+ * Copyright (c) 2021-2023 lumidify <nobody@lumidify.org>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -160,7 +160,7 @@ static void drag_motion(XEvent event);
static void resize_window(int w, int h);
static void button_release(void);
static void button_press(XEvent event);
-static void key_press(XEvent event);
+static int key_press(XEvent event);
static void queue_update(int x, int y, int w, int h);
static int parse_int(const char *str, int min, int max, int *value);
@@ -273,7 +273,7 @@ mainloop(void) {
drag_motion(event);
break;
case KeyPress:
- key_press(event);
+ running = key_press(event);
break;
case ClientMessage:
if ((Atom)event.xclient.data.l[0] == state.wm_delete_msg)
@@ -1103,7 +1103,7 @@ switch_color(void) {
queue_update(0, 0, state.window_w, state.window_h);
}
-static void
+static int
key_press(XEvent event) {
XWindowAttributes attrs;
char buf[32];
@@ -1135,7 +1135,10 @@ key_press(XEvent event) {
size didn't change */
queue_update(0, 0, state.window_w, state.window_h);
break;
+ case XK_q:
+ return 0;
default:
break;
}
+ return 1;
}