From 7834dee6e726df88e82ddc5e4c015023a50ba109 Mon Sep 17 00:00:00 2001 From: Bert Date: Wed, 26 Jan 2011 14:59:32 +0100 Subject: [PATCH] Added a key-mapping for toggle anti-aliasing --- README.md | 1 + image.c | 15 ++++++++++++++- image.h | 3 +++ main.c | 7 ++++++- sxiv.1 | 4 ++++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2641561..fced5f8 100644 --- a/README.md +++ b/README.md @@ -45,3 +45,4 @@ Use the following keys to control sxiv: <,> Rotate image (counter-)clockwise by 90 degrees f Toggle fullscreen mode (requires an EWMH/NetWM compliant window manager) + a Toggle anti-aliasing diff --git a/image.c b/image.c index beff925..fa2ad5d 100644 --- a/image.c +++ b/image.c @@ -33,8 +33,10 @@ void img_init(img_t *img, win_t *win) { zoom_min = zoom_levels[0] / 100.0; zoom_max = zoom_levels[zl_cnt - 1] / 100.0; - if (img) + if (img) { img->zoom = 1.0; + img->aa = 1; + } if (win) { 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_anti_alias(img->aa); img->re = 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) { 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; +} diff --git a/image.h b/image.h index 55b825c..2284dd5 100644 --- a/image.h +++ b/image.h @@ -39,6 +39,7 @@ typedef struct img_s { unsigned char re; unsigned char checkpan; unsigned char zoomed; + unsigned char aa; int x; int y; 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_right(img_t*, win_t*); +int img_toggle_antialias(img_t*); + #endif /* IMAGE_H */ diff --git a/main.c b/main.c index 039394c..53f206b 100644 --- a/main.c +++ b/main.c @@ -227,10 +227,15 @@ void on_keypress(XEvent *ev) { changed = img_rotate_right(&img, &win); break; - /* Control window */ + /* control window */ case 'f': win_toggle_fullscreen(&win); break; + + /* miscellaneous */ + case 'a': + changed = img_toggle_antialias(&img); + break; } if (changed) { diff --git a/sxiv.1 b/sxiv.1 index b9a3b95..3299cb1 100644 --- a/sxiv.1 +++ b/sxiv.1 @@ -76,6 +76,10 @@ Rotate image clockwise by 90 degrees. .TP .B f Toggle fullscreen mode. +.SS Miscellaneous +.TP +.B a +Toggle anti-aliasing. .SH AUTHORS .TP Bert Muennich