GSR / FR (famrom@xxxxxxxxxxxxxxxxxxxx) wrote: > I saw that zoom has been changed following bug 124073. After trying > it, I did not liked it. Personally I think it gives too much > importance to extreme zooms, forgeting most people work around > 100%. 4000 to 20 pix images in a reasonable size monitor is what I > normally see, not 40000 pix or people with one pixel painted as > 128*128 screen pixels. I also did not liked that it quickly went to > fractional numbers in which one of X:Y is not 1, cos it does not look > very pleasing due the fast way Gimp interpolates when displaying. I think it is very important, that zoom behaves homogenous, regardless of the actual zoom step. So the user will have a consistent experience when he works with low and high resolution images (but see below). > So I coded a different version that gives a full integer range in the > 16:1 to 1:16, plus two extra steps near 1:1 (it is a special point, so > I made the extra code an improvement and not only a way to make it > work), and for extreme zooms it gives integers but reduced number. looking at your patch I believe it is unnecessary complicated, because it tries to deal with the problem on the fractions level. I'd like to propose an alternate approach. Let Gimpdisplayshell have a percentage (float), that describes the desired zoom ratio as exact as possible. This is the value that gets manipulated in the various zoom functions. The fraction necessary to do the actual zooming of the image would be calculated from that in the display code. When we stop exposing this fraction to the user interface we no longer have to worry about "nice" fractions. With this approach it is trivial to implement different approaches for the zooming strategy: "homogenous zooming" would multiply/divide by sqrt(2), "preset zooming" would have a lookup table with percentages for the different zoom steps and move back/forward [1] in it (this also easily adresses the "nice looking zoom levels" problem, simply select the percentages so that they result in the desired fractions). The user then could e.g. select the strategy in the preferences. I believe this could simplify the whole issue a lot. Bye, Simon [1] it might be useful to guarantee a minimum zoom step since it does not make much sense to scale from 102% down to 100%. But this also is trivial to implement. -- Simon.Budig@xxxxxxxxxxx http://www.home.unix-ag.org/simon/