diff --git a/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h b/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h index 5d96038c5b..79e9b9dead 100644 --- a/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h +++ b/extras/Projucer/Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h @@ -476,7 +476,8 @@ private: //============================================================================== class EnabledModulesItem : public ProjectTreeItemBase, - private Value::Listener + private Value::Listener, + private Timer { public: EnabledModulesItem (Project& p) @@ -667,9 +668,17 @@ private: if (auto* moduleItem = dynamic_cast (getSubItem (i))) moduleItem->refreshModuleInfoIfCurrentlyShowing (juceModulePathChanged); - refreshSubItems(); + // coalesce changes using a timer in case the value is changing rapidly + startTimer (750); } } + //============================================================================== + void timerCallback() override + { + stopTimer(); + refreshSubItems(); + } + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (EnabledModulesItem) };