X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmidi_region_view.cc;h=bf0595de75485dc18878bf9f44f390609933f0e1;hb=154f9825ff72d691ba550de573948424b81a09a6;hp=481ac039b64982f09b64b65818c23068f26dd8ac;hpb=f54f270627fcd141f5dd7d2b31e3e21cca468462;p=ardour.git diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 481ac039b6..bf0595de75 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -133,6 +133,8 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Container* parent, PublicEditor::DropDownKeys.connect (sigc::mem_fun (*this, &MidiRegionView::drop_down_keys)); Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&MidiRegionView::parameter_changed, this, _1), gui_context()); + UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &MidiRegionView::parameter_changed)); + connect_to_diskstream (); } @@ -191,6 +193,8 @@ MidiRegionView::parameter_changed (std::string const & p) } } else if (p == "color-regions-using-track-color") { set_colors (); + } else if (p == "use-note-color-for-velocity") { + color_handler (); } } @@ -691,6 +695,9 @@ MidiRegionView::motion (GdkEventMotion* ev) bool MidiRegionView::scroll (GdkEventScroll* ev) { + if (trackview.editor().drags()->active()) { + return false; + } if (_selection.empty()) { return false; } @@ -1765,6 +1772,7 @@ MidiRegionView::update_sustained (Note* ev, bool update_ghost_regions) y1 = y0 + std::max(1., floor(note_height()) - 1); ev->set (ArdourCanvas::Rect (x0, y0, x1, y1)); + ev->set_velocity (note->velocity()/127.0); if (!note->length()) { if (_active_notes && note->note() < 128) { @@ -2930,9 +2938,7 @@ MidiRegionView::begin_resizing (bool /*at_front*/) ArdourCanvas::Rect (note->x0(), note->y0(), note->x0(), note->y1())); // calculate the colors: get the color settings - uint32_t fill_color = UINT_RGBA_CHANGE_A( - UIConfiguration::instance().color ("midi note selected"), - 128); + uint32_t fill_color = NoteBase::meter_style_fill_color (note->note()->velocity(), true); // make the resize preview notes more transparent and bright fill_color = UINT_INTERPOLATE(fill_color, 0xFFFFFF40, 0.5); @@ -2944,7 +2950,7 @@ MidiRegionView::begin_resizing (bool /*at_front*/) 0.85)); resize_rect->set_outline_color (NoteBase::calculate_outline ( - UIConfiguration::instance().color ("midi note selected"))); + UIConfiguration::instance().color ("midi note selected outline"))); resize_data->resize_rect = resize_rect; _resize_data.push_back(resize_data); @@ -3512,7 +3518,7 @@ MidiRegionView::nudge_notes (bool forward, bool fine) next_pos.sample -= 1; } - trackview.editor().snap_to (next_pos, (forward ? RoundUpAlways : RoundDownAlways), SnapToGrid, false); + trackview.editor().snap_to (next_pos, (forward ? RoundUpAlways : RoundDownAlways), SnapToGrid_Unscaled, false); const samplecnt_t distance = ref_point - next_pos.sample; delta = region_samples_to_region_beats (fabs ((double)distance)); }