diff options
author | Robin Gareus <robin@gareus.org> | 2020-03-02 19:18:30 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-03-02 19:18:59 +0100 |
commit | e79b762daa2579d25c5d194e832cd1655d84dfa2 (patch) | |
tree | e4c88ee730a97fcee024affa116617f7c9861c02 /gtk2_ardour/route_ui.cc | |
parent | 6120d4d43a4a5ff96126ec9093ab652105717ed2 (diff) |
Micro-optimization: only recreate polarity buttons as needed
Diffstat (limited to 'gtk2_ardour/route_ui.cc')
-rw-r--r-- | gtk2_ardour/route_ui.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index e1b9da4b89..7d9c10e29f 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -2009,6 +2009,13 @@ RouteUI::parameter_changed (string const & p) void RouteUI::setup_invert_buttons () { + uint32_t const N = _route ? _route->phase_control()->size() : 0; + + if (_n_polarity_invert == N) { + return; + } + _n_polarity_invert = N; + /* remove old invert buttons */ for (vector<ArdourButton*>::iterator i = _invert_buttons.begin(); i != _invert_buttons.end(); ++i) { _invert_button_box.remove (**i); @@ -2016,11 +2023,10 @@ RouteUI::setup_invert_buttons () _invert_buttons.clear (); - if (!_route) { + if (N == 0) { return; } - uint32_t const N = _route->phase_control()->size(); uint32_t const to_add = (N <= _max_invert_buttons) ? N : 1; for (uint32_t i = 0; i < to_add; ++i) { |