diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 917999405c..67be181937 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -470,7 +470,7 @@ MidiRegionView::enter_internal() void MidiRegionView::leave_internal() { - trackview.editor().verbose_cursor()->hide (); + hide_verbose_cursor (); remove_ghost_note (); if (_grabbed_keyboard) { @@ -485,11 +485,6 @@ MidiRegionView::leave_internal() if (frame_handle_end) { frame_handle_end->raise_to_top(); } - - MidiTimeAxisView* mtv = dynamic_cast(&trackview); - if (mtv) { - mtv->set_note_highlight (NO_MIDI_NOTE); - } } bool @@ -634,7 +629,7 @@ MidiRegionView::motion (GdkEventMotion* ev) } else if (_ghost_note && editor.current_mouse_mode() == MouseContent) { remove_ghost_note (); - editor.verbose_cursor()->hide (); + hide_verbose_cursor (); } else if (_ghost_note && editor.current_mouse_mode() == MouseDraw) { @@ -658,7 +653,7 @@ MidiRegionView::motion (GdkEventMotion* ev) editor.drags()->set (new NoteCreateDrag (dynamic_cast (&editor), group, this), (GdkEvent *) ev); _mouse_state = AddDragging; remove_ghost_note (); - editor.verbose_cursor()->hide (); + hide_verbose_cursor (); return true; } else if (m == MouseContent) { editor.drags()->set (new MidiRubberbandSelectDrag (dynamic_cast (&editor), this), (GdkEvent *) ev); @@ -712,7 +707,7 @@ MidiRegionView::scroll (GdkEventScroll* ev) return false; } - trackview.editor().verbose_cursor()->hide (); + hide_verbose_cursor (); bool fine = !Keyboard::modifier_state_contains (ev->state, Keyboard::SecondaryModifier); bool together = Keyboard::modifier_state_contains (ev->state, Keyboard::TertiaryModifier); @@ -1387,7 +1382,7 @@ MidiRegionView::~MidiRegionView () { in_destructor = true; - trackview.editor().verbose_cursor()->hide (); + hide_verbose_cursor (); note_delete_connection.disconnect (); @@ -2130,6 +2125,7 @@ MidiRegionView::delete_selection() _selection.clear(); apply_diff (); + hide_verbose_cursor (); } void @@ -2139,7 +2135,7 @@ MidiRegionView::delete_note (boost::shared_ptr n) _note_diff_command->remove (n); apply_diff (); - trackview.editor().verbose_cursor()->hide (); + hide_verbose_cursor (); } void @@ -3336,13 +3332,11 @@ MidiRegionView::note_entered(NoteBase* ev) void MidiRegionView::note_left (NoteBase*) { - Editor* editor = dynamic_cast(&trackview.editor()); - for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) { (*i)->hide_velocity (); } - editor->verbose_cursor()->hide (); + hide_verbose_cursor (); } void @@ -3360,7 +3354,7 @@ MidiRegionView::patch_entered (PatchChange* p) void MidiRegionView::patch_left (PatchChange *) { - trackview.editor().verbose_cursor()->hide (); + hide_verbose_cursor (); /* focus will transfer back via the enter-notify event sent to this * midi region view. */ @@ -3380,7 +3374,7 @@ MidiRegionView::sysex_entered (SysEx* p) void MidiRegionView::sysex_left (SysEx *) { - trackview.editor().verbose_cursor()->hide (); + hide_verbose_cursor (); /* focus will transfer back via the enter-notify event sent to this * midi region view. */ @@ -3765,6 +3759,16 @@ MidiRegionView::remove_ghost_note () _ghost_note = 0; } +void +MidiRegionView::hide_verbose_cursor () +{ + trackview.editor().verbose_cursor()->hide (); + MidiTimeAxisView* mtv = dynamic_cast(&trackview); + if (mtv) { + mtv->set_note_highlight (NO_MIDI_NOTE); + } +} + void MidiRegionView::snap_changed () { diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h index 4cab6b16bf..bcc4e7aca2 100644 --- a/gtk2_ardour/midi_region_view.h +++ b/gtk2_ardour/midi_region_view.h @@ -502,6 +502,7 @@ private: void mouse_mode_changed (); void enter_internal (); void leave_internal (); + void hide_verbose_cursor (); framecnt_t _last_display_zoom; diff --git a/gtk2_ardour/piano_roll_header.cc b/gtk2_ardour/piano_roll_header.cc index c6e0b94224..8b2e49770d 100644 --- a/gtk2_ardour/piano_roll_header.cc +++ b/gtk2_ardour/piano_roll_header.cc @@ -32,12 +32,12 @@ using namespace std; using namespace Gtkmm2ext; PianoRollHeader::Color PianoRollHeader::white = PianoRollHeader::Color(0.77f, 0.78f, 0.76f); -PianoRollHeader::Color PianoRollHeader::white_highlight = PianoRollHeader::Color(1.00f, 0.50f, 0.50f); +PianoRollHeader::Color PianoRollHeader::white_highlight = PianoRollHeader::Color(1.00f, 0.40f, 0.40f); PianoRollHeader::Color PianoRollHeader::white_shade_light = PianoRollHeader::Color(0.95f, 0.95f, 0.95f); PianoRollHeader::Color PianoRollHeader::white_shade_dark = PianoRollHeader::Color(0.56f, 0.56f, 0.56f); PianoRollHeader::Color PianoRollHeader::black = PianoRollHeader::Color(0.24f, 0.24f, 0.24f); -PianoRollHeader::Color PianoRollHeader::black_highlight = PianoRollHeader::Color(0.50f, 0.10f, 0.10f); +PianoRollHeader::Color PianoRollHeader::black_highlight = PianoRollHeader::Color(0.60f, 0.10f, 0.10f); PianoRollHeader::Color PianoRollHeader::black_shade_light = PianoRollHeader::Color(0.46f, 0.46f, 0.46f); PianoRollHeader::Color PianoRollHeader::black_shade_dark = PianoRollHeader::Color(0.1f, 0.1f, 0.1f); @@ -558,6 +558,10 @@ PianoRollHeader::on_button_release_event (GdkEventButton* ev) void PianoRollHeader::set_note_highlight (uint8_t note) { + if (_highlighted_note == note) { + return; + } + if (_highlighted_note != NO_MIDI_NOTE) { if (note > _highlighted_note) { invalidate_note_range (_highlighted_note, note);