Масштаб таймлайна берётся от точки под мышкой

Ctrl с колесом должен оставлять на месте то, на что смотрит мышь, а
оставлял точку левее — ровно на левый край таймлайна. При мыши у левого
края опора и вовсе уходила за пределы окна.

Причина: MousePos у DoMouseWheel по описанию экранный, но под gtk2 в нём
уже клиентские координаты, и ScreenToClient переводил их второй раз.
Берём Mouse.CursorPos — он экранный в любой системе.

Замерено на невидимом экране: до правки мышь в 700, 1000 и 1300 давала
опору в 260, 560 и 860; после — ровно 700, 1000 и 1300. Проверка
оформлена в tests/zoomanchor.py и прогнана на обеих сборках: на прежней
она падает, на новой проходит.
This commit is contained in:
4aiman 2026-09-30 20:45:32 +03:00
commit d0ec869743
4 changed files with 130 additions and 2 deletions

3
.gitignore vendored
View file

@ -51,6 +51,9 @@ shot*.png
/tests/lfmcheck/lfmcheck
/tests/lfmcheck/units/
# Снимок, который делает проверка масштаба таймлайна.
/tests/кадры-зума.png
# Проверка хода полоски: двоичный файл и промежуточные модули.
/tests/progress/progtest
/tests/progress/*.o