summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/midi_region_view.cc36
-rw-r--r--gtk2_ardour/midi_region_view.h1
-rw-r--r--gtk2_ardour/piano_roll_header.cc8
3 files changed, 27 insertions, 18 deletions
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<MidiTimeAxisView*>(&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 *> (&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 *> (&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<NoteType> 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<Editor*>(&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.
*/
@@ -3766,6 +3760,16 @@ MidiRegionView::remove_ghost_note ()
}
void
+MidiRegionView::hide_verbose_cursor ()
+{
+ trackview.editor().verbose_cursor()->hide ();
+ MidiTimeAxisView* mtv = dynamic_cast<MidiTimeAxisView*>(&trackview);
+ if (mtv) {
+ mtv->set_note_highlight (NO_MIDI_NOTE);
+ }
+}
+
+void
MidiRegionView::snap_changed ()
{
if (!_ghost_note) {
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);