Прокрутка во время воспроизведения больше не отскакивает

При выключенном «курсоре посередине» окно всё равно подтягивалось к
курсору, стоило тому выйти за край видимой части. Со стороны это выглядело
так: Shift с колесом, первый поворот прокручивает, второй возвращает
обратно. Человек отматывает осознанно, и возвращать его силой нельзя.

Теперь выключенный переключатель означает именно неподвижное окно.
Подтягивание при пуске воспроизведения осталось: там курсор надо привести
в поле зрения.

Проверено на невидимом экране при идущем воспроизведении: оба поворота
колеса двигают линейку (1651 и 1581 изменившихся точек), и к исходному
виду она не возвращается.
This commit is contained in:
4aiman 2026-09-11 20:44:32 +03:00
commit 407eb02f2d
2 changed files with 16 additions and 7 deletions

View file

@ -141,6 +141,13 @@ xdg-mime query default application/x-nlve-project
липнут при перетаскивании, курсор — при щелчке, и одно бывает нужно без
другого.
**Курсор посередине** (кнопка с целью, клавиша `\`). Включено — при
воспроизведении монтаж едет под курсором, и всегда видно, что будет
дальше. Выключено — окно не двигается вовсе, даже когда курсор ушёл за
край: отмотал Shift с колесом — там и останешься. Раньше в выключенном
состоянии окно всё равно подтягивалось к курсору, стоило тому выйти из
видимой части, и прокрутка отскакивала назад со второго поворота колеса.
**Ключ и прозрачность в предпросмотре** (меню «Вид»). Включено — окно
показывает то же, что даст сборка: выбитый цвет и приглушение считаются
на лету. Выключено — оверлей виден целиком, со своим фоном: так понятно,

View file

@ -3168,13 +3168,15 @@ begin
FUpdatingFromPlayer := True;
try
FTimeline.Playhead := FPlayer.TimePos;
{ Во время воспроизведения держим курсор посередине: так видно, что
будет дальше, и не приходится гоняться за ним прокруткой. }
{ Держать курсор посередине или дать монтажу стоять — решает человек:
на слабой машине и на мелком масштабе постоянная прокрутка мешает
разглядывать. }
if not FPlayer.Paused then
FTimeline.ScrollToPlayhead(FSettings.CenterPlayhead);
{ Держать курсор посередине или дать монтажу стоять — решает человек.
Выключено — не двигаем окно вовсе, даже когда курсор ушёл за край.
Раньше в этом случае монтаж всё равно подтягивался к курсору, стоило
тому выйти из видимой части: прокрутил колесом с Shift — первый
поворот сдвинул, второй вернул обратно. Человек отматывал
осознанно, и возвращать его силой нельзя. }
if (not FPlayer.Paused) and FSettings.CenterPlayhead then
FTimeline.ScrollToPlayhead(True);
finally
FUpdatingFromPlayer := False;
end;