diff --git a/mixer/src/JACK_Module.C b/mixer/src/JACK_Module.C index 6b361b6..8672285 100644 --- a/mixer/src/JACK_Module.C +++ b/mixer/src/JACK_Module.C @@ -49,6 +49,8 @@ extern char *instance_name; #include "Mixer.H" #include "Group.H" +#include "Project.H" + static JACK_Module *receptive_to_drop = NULL; @@ -299,12 +301,23 @@ JACK_Module::update_connection_status ( void ) return; } + /* causes a lot of unnecessary redraws to do this when loading */ + if ( Project::is_opening() ) + return; + + /* FIXME: only do something if port list actually changed! */ std::list output_names = get_connections_for_ports( aux_audio_output ); std::list input_names = get_connections_for_ports( aux_audio_input ); + if ( (unsigned int)connection_display->size() == input_names.size() + output_names.size() ) + /* looks like nothing was added or removed, bail. + FIXME: this would be better if it actually compared the lists item by item. */ + return; + connection_display->clear(); int n = 0; + for ( std::list::const_iterator j = input_names.begin(); j != input_names.end(); j++ ) @@ -329,7 +342,8 @@ JACK_Module::update_connection_status ( void ) else size( w(), 24 ); - parent()->parent()->redraw(); + /* parent()->parent()->redraw(); */ + parent()->redraw(); } void diff --git a/mixer/src/Mixer.C b/mixer/src/Mixer.C index 1f246e7..9f01d25 100644 --- a/mixer/src/Mixer.C +++ b/mixer/src/Mixer.C @@ -763,7 +763,7 @@ void Mixer::add ( Mixer_Strip *ms ) mixer_strips->add( ms ); ms->size( ms->w(), _strip_height ); - ms->redraw(); + /* ms->redraw(); */ ms->take_focus(); renumber_strips();