From 8dcb54705aed7175c91d991486552d497a2e861e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bert=20M=C3=BCnnich?= Date: Sun, 16 Oct 2011 18:31:01 +0200 Subject: [PATCH] Fixed pixel-wise panning by chaning x, y vars to float --- image.c | 16 ++++++++-------- image.h | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/image.c b/image.c index ffed8f4..8df02ec 100644 --- a/image.c +++ b/image.c @@ -554,8 +554,8 @@ bool img_zoom_out(img_t *img) { return false; } -bool img_move(img_t *img, int dx, int dy) { - int ox, oy; +bool img_move(img_t *img, float dx, float dy) { + float ox, oy; if (img == NULL || img->im == NULL) return false; @@ -581,13 +581,13 @@ bool img_pan(img_t *img, direction_t dir, int d) { * d = 0: 1/5 of screen * d > 0: num of pixels */ - int x, y; + float x, y; if (img == NULL || img->im == NULL || img->win == NULL) return false; if (d > 0) { - x = y = MAX(1, d * img->zoom); + x = y = MAX(1, (float) d * img->zoom); } else { x = img->win->w / (d < 0 ? 1 : 5); y = img->win->h / (d < 0 ? 1 : 5); @@ -595,13 +595,13 @@ bool img_pan(img_t *img, direction_t dir, int d) { switch (dir) { case DIR_LEFT: - return img_move(img, x, 0); + return img_move(img, x, 0.0); case DIR_RIGHT: - return img_move(img, -x, 0); + return img_move(img, -x, 0.0); case DIR_UP: - return img_move(img, 0, y); + return img_move(img, 0.0, y); case DIR_DOWN: - return img_move(img, 0, -y); + return img_move(img, 0.0, -y); } return false; } diff --git a/image.h b/image.h index 19ee37f..51593e6 100644 --- a/image.h +++ b/image.h @@ -43,8 +43,8 @@ typedef struct { int h; win_t *win; - int x; - int y; + float x; + float y; scalemode_t scalemode; float zoom; @@ -75,7 +75,7 @@ bool img_zoom(img_t*, float); bool img_zoom_in(img_t*); bool img_zoom_out(img_t*); -bool img_move(img_t*, int, int); +bool img_move(img_t*, float, float); bool img_pan(img_t*, direction_t, int); bool img_pan_edge(img_t*, direction_t);