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:
Thomas Goyne 2012-10-02 08:09:33 -07:00
parent 05f5d37576
commit 57a253004d
1 changed files with 14 additions and 2 deletions

View File

@ -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);