main.c: add zooming on mousewheel events
Signed-off-by: Dave Reisner <d@falconindy.com>
This commit is contained in:
parent
13eb5ac929
commit
9a35f40224
27
main.c
27
main.c
|
@ -31,10 +31,12 @@
|
||||||
|
|
||||||
void on_keypress(XEvent*);
|
void on_keypress(XEvent*);
|
||||||
void on_configurenotify(XEvent*);
|
void on_configurenotify(XEvent*);
|
||||||
|
void on_buttonpress(XEvent*);
|
||||||
|
|
||||||
void update_title();
|
void update_title();
|
||||||
|
|
||||||
static void (*handler[LASTEvent])(XEvent*) = {
|
static void (*handler[LASTEvent])(XEvent*) = {
|
||||||
|
[ButtonPress] = on_buttonpress,
|
||||||
[KeyPress] = on_keypress,
|
[KeyPress] = on_keypress,
|
||||||
[ConfigureNotify] = on_configurenotify
|
[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) {
|
void on_keypress(XEvent *ev) {
|
||||||
char key;
|
char key;
|
||||||
KeySym keysym;
|
KeySym keysym;
|
||||||
|
|
Loading…
Reference in a new issue