summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_mouse.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-10-31 13:16:51 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-10-31 13:16:51 -0400
commitea1ccb869a152d7344f498d2a062867f5bcf9d0b (patch)
treeef3b8dc9d60cd7d1da9ba439384336c1b0009ca2 /gtk2_ardour/editor_mouse.cc
parentb80ae88154fbc1b23c97fe60192a304280c8542c (diff)
parentf2300164d7a89c5e433d3293dfed4c1ab77f0553 (diff)
fix merge with master
Diffstat (limited to 'gtk2_ardour/editor_mouse.cc')
-rw-r--r--gtk2_ardour/editor_mouse.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index b2ee2777cf..7782f393ae 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -1299,6 +1299,10 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
}
if (event->type != GDK_BUTTON_PRESS) {
+ if (event->type == GDK_2BUTTON_PRESS) {
+ gdk_pointer_ungrab (GDK_CURRENT_TIME);
+ return button_double_click_handler (item, event, item_type);
+ }
return false;
}
@@ -1423,6 +1427,52 @@ Editor::button_release_dispatch (GdkEventButton* ev)
}
bool
+Editor::button_double_click_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type) {
+
+ if (event->button.button != 1) {
+ return false;
+ }
+
+ switch (item_type) {
+ case RegionItem:
+ RegionView *rv;
+ rv = clicked_regionview;
+ rv->show_region_editor ();
+ return true;
+ case NoteItem:
+ case PlayheadCursorItem:
+ break;
+ case MarkerItem:
+ case RangeMarkerBarItem:
+ case CdMarkerBarItem:
+ Marker* marker;
+ if ((marker = static_cast<Marker *> (item->get_data ("marker"))) == 0) {
+ break;
+ }
+ rename_marker (marker);
+ return true;
+ case TempoMarkerItem:
+ edit_tempo_marker (item);
+ return true;
+ case MeterMarkerItem:
+ edit_meter_marker (item);
+ return true;
+ case MarkerBarItem:
+ case TempoBarItem:
+ case MeterBarItem:
+ case TransportMarkerBarItem:
+ case StreamItem:
+ break;
+
+ default:
+ break;
+ }
+ return false;
+}
+
+
+
+bool
Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
framepos_t where = canvas_event_frame (event);