diff options
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 27 | 
1 files changed, 27 insertions, 0 deletions
| @@ -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; | 
