From c98abcf2931c3d58a1aa0d82ce7f06801d004423 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 28 Jan 2017 16:48:20 +0100 Subject: [PATCH] improve the behaviour of Mixer_UI::move_stripable_into_view() Don't change anything if the strip is visible; if we have to move to show it, try to show the requested strip in the middle --- gtk2_ardour/mixer_ui.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 05c2a51f62..a0e4322d40 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -1598,7 +1598,15 @@ Mixer_UI::move_stripable_into_view (boost::shared_ptr s) } Adjustment* adj = scroller.get_hscrollbar()->get_adjustment(); - scroller.get_hscrollbar()->set_value (max (adj->get_lower(), min (adj->get_upper(), x0 - 1.0))); + + if ((x0 < adj->get_value()) || x0 >= (adj->get_value() + adj->get_page_size())) { + /* try to put left edge of strip in the middle */ + double half_page = adj->get_page_size() / 2.0; + if (x0 >= half_page) { + x0 -= half_page; + } + adj->set_value (max (adj->get_lower(), min (adj->get_upper(), (double) x0))); + } } void