summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/automation_region_view.cc9
-rw-r--r--gtk2_ardour/editor_mouse.cc2
-rw-r--r--gtk2_ardour/midi_region_view.cc78
3 files changed, 30 insertions, 59 deletions
diff --git a/gtk2_ardour/automation_region_view.cc b/gtk2_ardour/automation_region_view.cc
index d44615d79a..871e83eec8 100644
--- a/gtk2_ardour/automation_region_view.cc
+++ b/gtk2_ardour/automation_region_view.cc
@@ -103,6 +103,11 @@ AutomationRegionView::canvas_group_event (GdkEvent* ev)
return false;
}
+ if (!trackview.editor().internal_editing()) {
+ // not in internal edit mode, so just act like a normal region
+ return RegionView::canvas_group_event (ev);
+ }
+
PublicEditor& e = trackview.editor ();
if (ev->type == GDK_BUTTON_PRESS && e.current_mouse_mode() == Editing::MouseObject) {
@@ -121,7 +126,7 @@ AutomationRegionView::canvas_group_event (GdkEvent* ev)
if (e.drags()->end_grab (ev)) {
return true;
} else if (e.current_mouse_mode() != Editing::MouseDraw) {
- return false;
+ return RegionView::canvas_group_event (ev);
}
double x = ev->button.x;
@@ -140,7 +145,7 @@ AutomationRegionView::canvas_group_event (GdkEvent* ev)
return true;
}
- return false;
+ return RegionView::canvas_group_event (ev);
}
/** @param when Position in frames, where 0 is the start of the region.
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index 52378af473..f7a7855eaa 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -758,7 +758,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
}
} else {
if (Keyboard::modifier_state_equals (event->button.state, Keyboard::RangeSelectModifier)) {
- cerr << "extend selection\n";
_drags->set (new SelectionDrag (this, item, SelectionDrag::SelectionExtend), event);
} else {
_drags->set (new SelectionDrag (this, item, SelectionDrag::CreateSelection), event);
@@ -777,7 +776,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
default:
if (!internal_editing()) {
if (Keyboard::modifier_state_equals (event->button.state, Keyboard::RangeSelectModifier)) {
- cerr << "extend selection 2\n";
_drags->set (new SelectionDrag (this, item, SelectionDrag::SelectionExtend), event);
} else {
_drags->set (new SelectionDrag (this, item, SelectionDrag::CreateSelection), event);
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 19725b375f..532237ad2b 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -333,38 +333,38 @@ MidiRegionView::canvas_group_event(GdkEvent* ev)
return false;
}
+ if (!trackview.editor().internal_editing()) {
+ // not in internal edit mode, so just act like a normal region
+ return RegionView::canvas_group_event (ev);
+ }
+
+ const MouseMode m = trackview.editor().current_mouse_mode();
bool r;
switch (ev->type) {
case GDK_ENTER_NOTIFY:
+ _last_event_x = ev->crossing.x;
+ _last_event_y = ev->crossing.y;
+ enter_notify(&ev->crossing);
+ // set entered_regionview (among other things)
+ return RegionView::canvas_group_event (ev);
+
case GDK_LEAVE_NOTIFY:
_last_event_x = ev->crossing.x;
_last_event_y = ev->crossing.y;
- break;
- case GDK_MOTION_NOTIFY:
- _last_event_x = ev->motion.x;
- _last_event_y = ev->motion.y;
- break;
- default:
- break;
- }
+ leave_notify(&ev->crossing);
+ // reset entered_regionview (among other things)
+ return RegionView::canvas_group_event (ev);
- if (ev->type == GDK_2BUTTON_PRESS) {
+ case GDK_2BUTTON_PRESS:
// cannot use double-click to exit internal mode if single-click is being used
- MouseMode m = trackview.editor().current_mouse_mode();
-
- if ((m != MouseObject || !Keyboard::modifier_state_contains (ev->button.state, Keyboard::insert_note_modifier())) && (m != MouseDraw)) {
+ if ((m != MouseDraw) &&
+ (m != MouseObject ||
+ !Keyboard::modifier_state_contains (ev->button.state, Keyboard::insert_note_modifier()))) {
return trackview.editor().toggle_internal_editing_from_double_click (ev);
}
- }
-
- if ((!trackview.editor().internal_editing() && trackview.editor().current_mouse_mode() != MouseGain) ||
- (trackview.editor().current_mouse_mode() == MouseTimeFX)) {
- // handle non-internal-edit/non-draw modes elsewhere
- return RegionView::canvas_group_event (ev);
- }
+ break;
- switch (ev->type) {
case GDK_SCROLL:
if (scroll (&ev->scroll)) {
return true;
@@ -386,24 +386,16 @@ MidiRegionView::canvas_group_event(GdkEvent* ev)
_note_player = 0;
return r;
- case GDK_ENTER_NOTIFY:
- // set entered_regionview (among other things)
- trackview.editor().canvas_region_view_event (ev, group, this);
- return enter_notify (&ev->crossing);
-
- case GDK_LEAVE_NOTIFY:
- // reset entered_regionview (among other things)
- trackview.editor().canvas_region_view_event (ev, group, this);
- return leave_notify (&ev->crossing);
-
case GDK_MOTION_NOTIFY:
+ _last_event_x = ev->motion.x;
+ _last_event_y = ev->motion.y;
return motion (&ev->motion);
default:
break;
}
- return trackview.editor().canvas_region_view_event (ev, group, this);
+ return RegionView::canvas_group_event (ev);
}
bool
@@ -417,20 +409,6 @@ MidiRegionView::enter_notify (GdkEventCrossing* ev)
create_ghost_note (ev->x, ev->y);
}
- if (!trackview.editor().internal_editing()) {
- Keyboard::magic_widget_drop_focus();
- } else {
- Keyboard::magic_widget_grab_focus();
- group->grab_focus();
- }
-
- // if current operation is non-operational in a midi region, change the cursor to so indicate
- if (trackview.editor().current_mouse_mode() == MouseGain) {
- Editor* editor = dynamic_cast<Editor *> (&trackview.editor());
- pre_enter_cursor = editor->get_canvas_cursor();
- editor->set_canvas_cursor(editor->cursors()->timebar);
- }
-
return false;
}
@@ -442,16 +420,6 @@ MidiRegionView::leave_notify (GdkEventCrossing*)
trackview.editor().verbose_cursor()->hide ();
remove_ghost_note ();
- if (trackview.editor().internal_editing()) {
- Keyboard::magic_widget_drop_focus();
- }
-
- if (pre_enter_cursor) {
- Editor* editor = dynamic_cast<Editor *> (&trackview.editor());
- editor->set_canvas_cursor(pre_enter_cursor);
- pre_enter_cursor = 0;
- }
-
return false;
}