mirror of https://github.com/odrling/Aegisub
Scroll the audio display after a click near an edge
When auto scrolling is enabled, scroll the audio display after a click near an edge to mimic the effect of scrolling to show the new audio selection (as 2.1.9 did), but hopefully without all the weird undesirable cases that had.
This commit is contained in:
parent
05f5d37576
commit
57a253004d
|
@ -1010,11 +1010,23 @@ void AudioDisplay::OnMouseEvent(wxMouseEvent& event)
|
||||||
if (event.IsButton())
|
if (event.IsButton())
|
||||||
SetFocus();
|
SetFocus();
|
||||||
|
|
||||||
|
const int mouse_x = event.GetPosition().x;
|
||||||
|
|
||||||
|
// Scroll the display after a mouse-up near one of the edges
|
||||||
|
if ((event.LeftUp() || event.RightUp()) && OPT_GET("Audio/Auto/Scroll")->GetBool())
|
||||||
|
{
|
||||||
|
const int width = GetClientSize().GetWidth();
|
||||||
|
if (mouse_x < width / 20) {
|
||||||
|
ScrollBy(-width / 3);
|
||||||
|
}
|
||||||
|
else if (width - mouse_x < width / 20) {
|
||||||
|
ScrollBy(width / 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ForwardMouseEvent(event))
|
if (ForwardMouseEvent(event))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const int mouse_x = event.GetPosition().x;
|
|
||||||
|
|
||||||
if (event.MiddleIsDown())
|
if (event.MiddleIsDown())
|
||||||
{
|
{
|
||||||
context->videoController->JumpToTime(TimeFromRelativeX(mouse_x), agi::vfr::EXACT);
|
context->videoController->JumpToTime(TimeFromRelativeX(mouse_x), agi::vfr::EXACT);
|
||||||
|
|
Loading…
Reference in New Issue