1. Run LibreOffice Draw
2. Set zoom 1000%
3. Press Ctrl and rotate mouse wheel by 1 step
Zoom is changed: New_zoom = prev_zoom * A
where A is a "common ratio" (value in range: 1<A<2)
Zoom is changed: New_zoom = prev_zoom + 10%
Actual behavior is incorrect because it is not functional if currect zoom is bug enough or small enough. For example, if current zoom is 1000%, then I have to rotate mouse wheel by 50 steps in order to change zoom to 500%, i.e. 50 steps to change zoom twice.
On other hand, if zoom is very small (5%), then one step changes it to 15%, i.e. zoom is tripled; it is very uncomfortable.
Correct behavior: Sequence of zoom factors must be a geometric progression:
"common ratio" can be calculated in following way:
A = 10**(1/n) (** means "power")
"E series" is a good example of such progression:
I think E6 is the best for zoom factors.
It also would be good to "snap" to these values if user zooms by wheel after manually setting zoom not from series.
Yes, that would be useful, Acrobat reader for example does that much more elegant than LibO. It's not necessary to have an exact geometric progression, but the zoom lever change per mouse wheel should be related to current Zoom factor.
Such a mode is most important for DRAW, but also interesting for all other applications.
Since the zoom factor is used not only for Draw but also Calc and Writer I would suggest to use a factor of 1.2.
This problem is an OOo heritage.
For me 1.2 sounds plausible, because I use the mouse wheel for quick big zoom changes; I can't tell whether other users will agree.
I have created a patch to address this issue which was already committed so it will ship with 3.6.
I have used the zoom factor 1.2 but it could be easily changed in one place.
The zoom factor does apply for Writer, Calc, Impress and Draw and it is not only used for mouse zooming but also for the plus minus slider buttons.