nsxiv8dcb547
Fixed pixel-wise panning by chaning x, y vars to float
+11 −11
2 files changed
| @@ -554,8 +554,8 @@ bool img_zoom_out(img_t *img) { | |||
| 554 | 554 | return false; | |
| 555 | 555 | } | |
| 556 | 556 | ||
| 557 | − | bool img_move(img_t *img, int dx, int dy) { | |
| 558 | − | int ox, oy; | |
| 557 | + | bool img_move(img_t *img, float dx, float dy) { | |
| 558 | + | float ox, oy; | |
| 559 | 559 | ||
| 560 | 560 | if (img == NULL || img->im == NULL) | |
| 561 | 561 | return false; | |
| @@ -581,13 +581,13 @@ bool img_pan(img_t *img, direction_t dir, int d) { | |||
| 581 | 581 | * d = 0: 1/5 of screen | |
| 582 | 582 | * d > 0: num of pixels | |
| 583 | 583 | */ | |
| 584 | − | int x, y; | |
| 584 | + | float x, y; | |
| 585 | 585 | ||
| 586 | 586 | if (img == NULL || img->im == NULL || img->win == NULL) | |
| 587 | 587 | return false; | |
| 588 | 588 | ||
| 589 | 589 | if (d > 0) { | |
| 590 | − | x = y = MAX(1, d * img->zoom); | |
| 590 | + | x = y = MAX(1, (float) d * img->zoom); | |
| 591 | 591 | } else { | |
| 592 | 592 | x = img->win->w / (d < 0 ? 1 : 5); | |
| 593 | 593 | y = img->win->h / (d < 0 ? 1 : 5); | |
| @@ -595,13 +595,13 @@ bool img_pan(img_t *img, direction_t dir, int d) { | |||
| 595 | 595 | ||
| 596 | 596 | switch (dir) { | |
| 597 | 597 | case DIR_LEFT: | |
| 598 | − | return img_move(img, x, 0); | |
| 598 | + | return img_move(img, x, 0.0); | |
| 599 | 599 | case DIR_RIGHT: | |
| 600 | − | return img_move(img, -x, 0); | |
| 600 | + | return img_move(img, -x, 0.0); | |
| 601 | 601 | case DIR_UP: | |
| 602 | − | return img_move(img, 0, y); | |
| 602 | + | return img_move(img, 0.0, y); | |
| 603 | 603 | case DIR_DOWN: | |
| 604 | − | return img_move(img, 0, -y); | |
| 604 | + | return img_move(img, 0.0, -y); | |
| 605 | 605 | } | |
| 606 | 606 | return false; | |
| 607 | 607 | } | |
| @@ -43,8 +43,8 @@ typedef struct { | |||
| 43 | 43 | int h; | |
| 44 | 44 | ||
| 45 | 45 | win_t *win; | |
| 46 | − | int x; | |
| 47 | − | int y; | |
| 46 | + | float x; | |
| 47 | + | float y; | |
| 48 | 48 | ||
| 49 | 49 | scalemode_t scalemode; | |
| 50 | 50 | float zoom; | |
| @@ -75,7 +75,7 @@ bool img_zoom(img_t*, float); | |||
| 75 | 75 | bool img_zoom_in(img_t*); | |
| 76 | 76 | bool img_zoom_out(img_t*); | |
| 77 | 77 | ||
| 78 | − | bool img_move(img_t*, int, int); | |
| 78 | + | bool img_move(img_t*, float, float); | |
| 79 | 79 | bool img_pan(img_t*, direction_t, int); | |
| 80 | 80 | bool img_pan_edge(img_t*, direction_t); | |
| 81 | 81 | ||