aboutsummaryrefslogtreecommitdiffstats
path: root/image.c
diff options
context:
space:
mode:
authorBert Münnich <be.muennich@gmail.com>2013-08-10 15:55:18 +0200
committerBert Münnich <be.muennich@gmail.com>2013-08-10 15:55:18 +0200
commit56142bd3bafedf51882b368ab08a580ac98f2619 (patch)
tree5224012a224fe3526105031c07595f9b236b1f70 /image.c
parent7e51c35801f9921685c3acf0d1d17d9370ae4d59 (diff)
downloadnsxiv-56142bd3bafedf51882b368ab08a580ac98f2619.tar.zst
Refactored merged rotation code
Diffstat (limited to 'image.c')
-rw-r--r--image.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/image.c b/image.c
index b2ac293..cc93cd8 100644
--- a/image.c
+++ b/image.c
@@ -650,25 +650,22 @@ bool img_pan_edge(img_t *img, direction_t dir)
}
}
-void img_rotate(img_t *img, int d)
+void img_rotate(img_t *img, degree_t d)
{
- win_t *win;
int ox, oy, tmp;
if (img == NULL || img->im == NULL || img->win == NULL)
return;
- win = img->win;
- ox = d == 1 ? img->x : win->w - img->x - img->w * img->zoom;
- oy = d == 3 ? img->y : win->h - img->y - img->h * img->zoom;
-
imlib_context_set_image(img->im);
- /* rotates by `90 * d` degrees in the clockwise direction */
imlib_image_orientate(d);
- if (d == 1 || d == 3) {
- img->x = oy + (win->w - win->h) / 2;
- img->y = ox + (win->h - win->w) / 2;
+ if (d == DEGREE_90 || d == DEGREE_270) {
+ ox = d == DEGREE_90 ? img->x : img->win->w - img->x - img->w * img->zoom;
+ oy = d == DEGREE_270 ? img->y : img->win->h - img->y - img->h * img->zoom;
+
+ img->x = oy + (img->win->w - img->win->h) / 2;
+ img->y = ox + (img->win->h - img->win->w) / 2;
tmp = img->w;
img->w = img->h;