summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-note-event.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-12-29 16:34:51 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-12-29 16:34:51 +0000
commitd16bb0b8bc007e805b1c3b386d3595ba0e69938a (patch)
treef3fbd3c5b0e2c6a351fc97f7bd030f02a1fef338 /gtk2_ardour/canvas-note-event.cc
parentb690cac96178810ea2f73fdce7d2403a246a8f03 (diff)
rest of lincoln's MIDI note edit via click outside of MIDI edit mode patch
git-svn-id: svn://localhost/ardour2/branches/3.0@8366 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-note-event.cc')
-rw-r--r--gtk2_ardour/canvas-note-event.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/gtk2_ardour/canvas-note-event.cc b/gtk2_ardour/canvas-note-event.cc
index 1aa5ddda1b..0e1afcc017 100644
--- a/gtk2_ardour/canvas-note-event.cc
+++ b/gtk2_ardour/canvas-note-event.cc
@@ -138,6 +138,12 @@ void
CanvasNoteEvent::show_channel_selector(void)
{
if (_channel_selector_widget == 0) {
+
+ if(_region.channel_selector_scoped_note() != 0){
+ _region.channel_selector_scoped_note()->hide_channel_selector();
+ _region.set_channel_selector_scoped_note(0);
+ }
+
SingleMidiChannelSelector* _channel_selector = new SingleMidiChannelSelector(_note->channel());
_channel_selector->show_all();
_channel_selector->channel_selected.connect(
@@ -156,6 +162,8 @@ CanvasNoteEvent::show_channel_selector(void)
_channel_selector_widget->property_width() = 100;
_channel_selector_widget->raise_to_top();
_channel_selector_widget->show();
+
+ _region.set_channel_selector_scoped_note(this);
} else {
hide_channel_selector();
}
@@ -183,8 +191,14 @@ CanvasNoteEvent::set_selected(bool selected)
if (_selected) {
set_outline_color(calculate_outline(ARDOUR_UI::config()->canvasvar_MidiNoteSelected.get()));
+
+ if(_region.channel_selector_scoped_note() != 0){
+ _region.channel_selector_scoped_note()->hide_channel_selector();
+ _region.set_channel_selector_scoped_note(0);
+ }
} else {
set_outline_color(calculate_outline(base_color()));
+ hide_channel_selector();
}
}
@@ -306,7 +320,7 @@ CanvasNoteEvent::on_event(GdkEvent* ev)
case GDK_BUTTON_PRESS:
set_mouse_fractions (ev);
- if (ev->button.button == 3 && Keyboard::no_modifiers_active (ev->button.state)) {
+ if (ev->button.button == 3 && Keyboard::no_modifiers_active (ev->button.state) && _selected) {
show_channel_selector();
return true;
}