summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-01-08 21:12:48 +0100
committerRobin Gareus <robin@gareus.org>2016-01-08 21:12:48 +0100
commitb3a1ea664ef8744f09cf21afc0608eb160957127 (patch)
treea33da33da46b56fe562edfb6f90c9d7eb19d997f
parent2ce0cf72959661597aea5d09ce5928aaa7e44587 (diff)
fix favorite plugin sort (after plugin-scan)
-rw-r--r--gtk2_ardour/mixer_ui.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 6384a7bf6a..02c4c1cb86 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -2255,11 +2255,13 @@ Mixer_UI::refiller (PluginInfoList& result, const PluginInfoList& plugs)
struct PluginCustomSorter {
public:
bool operator() (PluginInfoPtr a, PluginInfoPtr b) const {
- PluginInfoList::const_iterator aiter = std::find(_user.begin(), _user.end(), a);
- PluginInfoList::const_iterator biter = std::find(_user.begin(), _user.end(), b);
+ PluginInfoList::const_iterator aiter = _user.begin();
+ PluginInfoList::const_iterator biter = _user.begin();
+ while (aiter != _user.end()) { if ((*aiter)->name == a->name) { break; } ++aiter; }
+ while (biter != _user.end()) { if ((*biter)->name == b->name) { break; } ++biter; }
if (aiter != _user.end() && biter != _user.end()) {
- return std::distance (_user.begin(), aiter) < std::distance (_user.begin(), biter);
+ return std::distance (_user.begin(), aiter) < std::distance (_user.begin(), biter);
}
if (aiter != _user.end()) {
return true;