X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=inline;f=gtk2_ardour%2Fpiano_roll_header.cc;h=cdd956dddd70f8649709b209e7c61cd81c03a7ca;hb=0c59ba649ef11236fca34b2a976fcee7309b9eb5;hp=c6e0b94224e83d3c176895e3cc602ff57d011023;hpb=f2495d98080db52af2bb961f03e31e858be6d4f9;p=ardour.git diff --git a/gtk2_ardour/piano_roll_header.cc b/gtk2_ardour/piano_roll_header.cc index c6e0b94224..cdd956dddd 100644 --- a/gtk2_ardour/piano_roll_header.cc +++ b/gtk2_ardour/piano_roll_header.cc @@ -27,17 +27,18 @@ #include "midi_time_axis.h" #include "midi_streamview.h" #include "public_editor.h" +#include "ui_config.h" 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); @@ -467,7 +468,7 @@ PianoRollHeader::on_motion_notify_event (GdkEventMotion* ev) if (_dragging) { if ( false /*editor().current_mouse_mode() == Editing::MouseRange*/ ) { //ToDo: fix this. this mode is buggy, and of questionable utility anyway - + /* select note range */ if (Keyboard::no_modifiers_active (ev->state)) { @@ -480,9 +481,9 @@ PianoRollHeader::on_motion_notify_event (GdkEventMotion* ev) if (_clicked_note != NO_MIDI_NOTE && _clicked_note != note) { _active_notes[_clicked_note] = false; send_note_off(_clicked_note); - + _clicked_note = note; - + if (!_active_notes[note]) { _active_notes[note] = true; send_note_on(note); @@ -511,12 +512,12 @@ PianoRollHeader::on_button_press_event (GdkEventButton* ev) } else if (ev->button == 1 && note >= 0 && note < 128) { add_modal_grab(); _dragging = true; - + if (!_active_notes[note]) { _active_notes[note] = true; _clicked_note = note; send_note_on(note); - + invalidate_note_range(note, note); } else { reset_clicked_note(note); @@ -540,7 +541,7 @@ PianoRollHeader::on_button_release_event (GdkEventButton* ev) } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::RangeSelectModifier)) { ExtendNoteSelection (note); // EMIT SIGNAL } - + } else { if (_dragging) { @@ -558,6 +559,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); @@ -657,7 +662,7 @@ PianoRollHeader::invalidate_note_range(int lowest, int highest) void PianoRollHeader::on_size_request(Gtk::Requisition* r) { - r->width = 20; + r->width = std::max (20.f, rintf (20.f * UIConfiguration::instance().get_ui_scale())); } void