projects
/
geeqie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Addl fix #521: zoom increment is not multiplicative
[geeqie.git]
/
src
/
pixbuf-renderer.c
diff --git
a/src/pixbuf-renderer.c
b/src/pixbuf-renderer.c
index
3653b41
..
54a943f
100644
(file)
--- a/
src/pixbuf-renderer.c
+++ b/
src/pixbuf-renderer.c
@@
-1259,40
+1259,68
@@
static void pr_zoom_adjust_real(PixbufRenderer *pr, gdouble increment,
}
}
}
}
- if (
increment < 0.0
)
+ if (
options->image.zoom_style == ZOOM_GEOMETRIC
)
{
{
- if (
zoom >= 1
.0)
+ if (
increment < 0
.0)
{
{
- if (zoom
/ -(increment - 1.0) <
1.0)
+ if (zoom
>=
1.0)
{
{
- zoom = 1.0 / (zoom / (increment - 1.0));
+ if (zoom / -(increment - 1.0) < 1.0)
+ {
+ zoom = 1.0 / (zoom / (increment - 1.0));
+ }
+ else
+ {
+ zoom = zoom / -(increment - 1.0) ;
+ }
}
else
{
}
else
{
- zoom = zoom
/ -(increment - 1.0)
;
+ zoom = zoom
* -(increment - 1.0)
;
}
}
else
{
}
}
else
{
- zoom = zoom * -(increment - 1.0);
+ if (zoom <= -1.0 )
+ {
+ if (zoom / (increment + 1.0) > -1.0)
+ {
+ zoom = -(1.0 / (zoom / (increment + 1.0)));
+ }
+ else
+ {
+ zoom = zoom / (increment + 1.0) ;
+ }
+ }
+ else
+ {
+ zoom = zoom * (increment + 1.0);
+ }
}
}
else
{
}
}
else
{
- if (
zoom <= -1.0
)
+ if (
increment < 0.0
)
{
{
- if (zoom
/ (increment + 1.0) > -
1.0)
+ if (zoom
>= 1.0 && zoom + increment <
1.0)
{
{
- zoom =
-(1.0 / (zoom / (increment + 1.0)))
;
+ zoom =
zoom + increment - 2.0
;
}
else
{
}
else
{
- zoom = zoom
/ (increment + 1.0)
;
+ zoom = zoom
+ increment
;
}
}
else
{
}
}
else
{
- zoom = zoom * (increment + 1.0);
+ if (zoom <= -1.0 && zoom + increment > -1.0)
+ {
+ zoom = zoom + increment + 2.0;
+ }
+ else
+ {
+ zoom = zoom + increment;
+ }
}
}
}
}