Krolyxon
Commit a540317

Branches

Refs →

nsxiva540317

Zoom into mouse cursor position

Author
Bert Münnich
Date
2017-10-16 10:56 +0200
Parent
5155d52
Commit
a5403178e337abeed4168be0cb038a42ab31124c

+10 −3

2 files changed

  1. M Makefile +1 −1
  2. M image.c +9 −2
M Makefile View
@@ -1,6 +1,6 @@
11 # Works best with GNU make 3.80 or later
22
3−VERSION = git-20171012
3+VERSION = git-20171016
44
55 srcdir = .
66
M image.c View
@@ -530,8 +530,15 @@ bool img_zoom(img_t *img, float z)
530530 img->scalemode = SCALE_ZOOM;
531531
532532 if (zoomdiff(z, img->zoom) != 0) {
533− img->x = img->win->w / 2 - (img->win->w / 2 - img->x) * z / img->zoom;
534− img->y = img->win->h / 2 - (img->win->h / 2 - img->y) * z / img->zoom;
533+ int x, y;
534+
535+ win_cursor_pos(img->win, &x, &y);
536+ if (x < 0 || x >= img->win->w || y < 0 || y >= img->win->h) {
537+ x = img->win->w / 2;
538+ y = img->win->h / 2;
539+ }
540+ img->x = x - (x - img->x) * z / img->zoom;
541+ img->y = y - (y - img->y) * z / img->zoom;
535542 img->zoom = z;
536543 img->checkpan = true;
537544 img->dirty = true;