Fix double MIDI track display on initial load.

git-svn-id: svn://localhost/ardour2/branches/3.0@9559 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
David Robillard 2011-05-19 21:29:47 +00:00
parent 74fa33486c
commit c425e61bb9
2 changed files with 12 additions and 7 deletions

View 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

View 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 ();