Added a key-mapping for toggle anti-aliasing

This commit is contained in:
Bert 2011-01-26 14:59:32 +01:00
parent 2bedd22314
commit 7834dee6e7
5 changed files with 28 additions and 2 deletions

View file

@ -45,3 +45,4 @@ Use the following keys to control sxiv:
<,> Rotate image (counter-)clockwise by 90 degrees <,> Rotate image (counter-)clockwise by 90 degrees
f Toggle fullscreen mode (requires an EWMH/NetWM compliant f Toggle fullscreen mode (requires an EWMH/NetWM compliant
window manager) window manager)
a Toggle anti-aliasing

15
image.c
View file

@ -33,8 +33,10 @@ void img_init(img_t *img, win_t *win) {
zoom_min = zoom_levels[0] / 100.0; zoom_min = zoom_levels[0] / 100.0;
zoom_max = zoom_levels[zl_cnt - 1] / 100.0; zoom_max = zoom_levels[zl_cnt - 1] / 100.0;
if (img) if (img) {
img->zoom = 1.0; img->zoom = 1.0;
img->aa = 1;
}
if (win) { if (win) {
imlib_context_set_display(win->env.dpy); imlib_context_set_display(win->env.dpy);
@ -63,6 +65,7 @@ int img_load(img_t *img, const char *filename) {
} }
imlib_context_set_image(im); imlib_context_set_image(im);
imlib_context_set_anti_alias(img->aa);
img->re = 0; img->re = 0;
img->checkpan = 0; img->checkpan = 0;
@ -272,3 +275,13 @@ int img_rotate_left(img_t *img, win_t *win) {
int img_rotate_right(img_t *img, win_t *win) { int img_rotate_right(img_t *img, win_t *win) {
return img_rotate(img, win, 1); return img_rotate(img, win, 1);
} }
int img_toggle_antialias(img_t *img) {
if (!img)
return 0;
img->aa ^= 1;
imlib_context_set_anti_alias(img->aa);
return 1;
}

View file

@ -39,6 +39,7 @@ typedef struct img_s {
unsigned char re; unsigned char re;
unsigned char checkpan; unsigned char checkpan;
unsigned char zoomed; unsigned char zoomed;
unsigned char aa;
int x; int x;
int y; int y;
int w; int w;
@ -59,4 +60,6 @@ int img_pan(img_t*, win_t*, pandir_t);
int img_rotate_left(img_t*, win_t*); int img_rotate_left(img_t*, win_t*);
int img_rotate_right(img_t*, win_t*); int img_rotate_right(img_t*, win_t*);
int img_toggle_antialias(img_t*);
#endif /* IMAGE_H */ #endif /* IMAGE_H */

7
main.c
View file

@ -227,10 +227,15 @@ void on_keypress(XEvent *ev) {
changed = img_rotate_right(&img, &win); changed = img_rotate_right(&img, &win);
break; break;
/* Control window */ /* control window */
case 'f': case 'f':
win_toggle_fullscreen(&win); win_toggle_fullscreen(&win);
break; break;
/* miscellaneous */
case 'a':
changed = img_toggle_antialias(&img);
break;
} }
if (changed) { if (changed) {

4
sxiv.1
View file

@ -76,6 +76,10 @@ Rotate image clockwise by 90 degrees.
.TP .TP
.B f .B f
Toggle fullscreen mode. Toggle fullscreen mode.
.SS Miscellaneous
.TP
.B a
Toggle anti-aliasing.
.SH AUTHORS .SH AUTHORS
.TP .TP
Bert Muennich <ber.t at gmx.com> Bert Muennich <ber.t at gmx.com>