summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.c27
-rw-r--r--window.c2
2 files changed, 28 insertions, 1 deletions
diff --git a/main.c b/main.c
index 53f206b..ad2d4a4 100644
--- a/main.c
+++ b/main.c
@@ -31,10 +31,12 @@
void on_keypress(XEvent*);
void on_configurenotify(XEvent*);
+void on_buttonpress(XEvent*);
void update_title();
static void (*handler[LASTEvent])(XEvent*) = {
+ [ButtonPress] = on_buttonpress,
[KeyPress] = on_keypress,
[ConfigureNotify] = on_configurenotify
};
@@ -126,6 +128,31 @@ void cleanup() {
}
}
+void on_buttonpress(XEvent *ev) {
+ int changed;
+ XButtonEvent *buttonevent;
+
+ changed = 0;
+ buttonevent = &ev->xbutton;
+
+ switch (buttonevent->button) {
+ case Button4:
+ changed = img_zoom_in(&img);
+ break;
+ case Button5:
+ changed = img_zoom_out(&img);
+ break;
+ default:
+ return;
+ }
+
+ if (changed) {
+ img_render(&img, &win);
+ update_title();
+ timeout = 0;
+ }
+}
+
void on_keypress(XEvent *ev) {
char key;
KeySym keysym;
diff --git a/window.c b/window.c
index 516f862..e1b8ee7 100644
--- a/window.c
+++ b/window.c
@@ -69,7 +69,7 @@ void win_open(win_t *win) {
DIE("could not create window");
XSelectInput(e->dpy, win->xwin,
- StructureNotifyMask | KeyPressMask);
+ StructureNotifyMask | KeyPressMask | ButtonPressMask);
bgc = XCreateGC(e->dpy, win->xwin, 0, None);