Fix double MIDI track display on initial load.
authorDavid Robillard <d@drobilla.net>
Thu, 19 May 2011 21:29:47 +0000 (21:29 +0000)
committerDavid Robillard <d@drobilla.net>
Thu, 19 May 2011 21:29:47 +0000 (21:29 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@9559 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/midi_time_axis.cc
gtk2_ardour/midi_time_axis.h

index 2f06fdb127ff7a4753a18294d9b6cc0b367b5b93..cf37ace16aa76797798167fa15452ef2f9b6323e 100644 (file)
@@ -227,7 +227,7 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session* sess,
                }
        }
 
-       set_color_mode (_color_mode, true);
+       set_color_mode (_color_mode, true, false);
 }
 
 void
@@ -761,17 +761,20 @@ MidiTimeAxisView::build_color_mode_menu()
 
        RadioMenuItem::Group mode_group;
        items.push_back (RadioMenuElem (mode_group, _("Meter Colors"),
-                                       sigc::bind (sigc::mem_fun (*this, &MidiTimeAxisView::set_color_mode), MeterColors, false)));
+                                       sigc::bind (sigc::mem_fun (*this, &MidiTimeAxisView::set_color_mode),
+                                                   MeterColors, false, true)));
        _meter_color_mode_item = dynamic_cast<RadioMenuItem*>(&items.back());
        _meter_color_mode_item->set_active(_color_mode == MeterColors);
 
        items.push_back (RadioMenuElem (mode_group, _("Channel Colors"),
-                                       sigc::bind (sigc::mem_fun (*this, &MidiTimeAxisView::set_color_mode), ChannelColors, false)));
+                                       sigc::bind (sigc::mem_fun (*this, &MidiTimeAxisView::set_color_mode),
+                                                   ChannelColors, false, true)));
        _channel_color_mode_item = dynamic_cast<RadioMenuItem*>(&items.back());
        _channel_color_mode_item->set_active(_color_mode == ChannelColors);
 
        items.push_back (RadioMenuElem (mode_group, _("Track Color"),
-                                       sigc::bind (sigc::mem_fun (*this, &MidiTimeAxisView::set_color_mode), TrackColor, false)));
+                                       sigc::bind (sigc::mem_fun (*this, &MidiTimeAxisView::set_color_mode),
+                                                   TrackColor, false, true)));
        _channel_color_mode_item = dynamic_cast<RadioMenuItem*>(&items.back());
        _channel_color_mode_item->set_active(_color_mode == TrackColor);
 
@@ -790,7 +793,7 @@ MidiTimeAxisView::set_note_mode(NoteMode mode)
 }
 
 void
-MidiTimeAxisView::set_color_mode (ColorMode mode, bool force)
+MidiTimeAxisView::set_color_mode (ColorMode mode, bool force, bool redisplay)
 {
        if (_color_mode == mode && !force) {
                return;
@@ -804,7 +807,9 @@ MidiTimeAxisView::set_color_mode (ColorMode mode, bool force)
        
        _color_mode = mode;
        xml_node->add_property ("color-mode", enum_2_string(_color_mode));
-       _view->redisplay_track();
+       if (redisplay) {
+               _view->redisplay_track();
+       }
 }
 
 void
index c18c6c33cee69d7ccecdb32f9e7653c725c9fd51..489ce0ccd394007a7d8ae7725079d12cfe92a2fd 100644 (file)
@@ -117,7 +117,7 @@ class MidiTimeAxisView : public RouteTimeAxisView
        Gtk::Menu* build_color_mode_menu();
 
        void set_note_mode (ARDOUR::NoteMode mode);
-       void set_color_mode (ARDOUR::ColorMode, bool force = false);
+       void set_color_mode (ARDOUR::ColorMode, bool force=false, bool redisplay=true);
        void set_note_range(MidiStreamView::VisibleNoteRange range);
 
        void route_active_changed ();