summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-sysex.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/canvas-sysex.cc')
-rw-r--r--gtk2_ardour/canvas-sysex.cc30
1 files changed, 28 insertions, 2 deletions
diff --git a/gtk2_ardour/canvas-sysex.cc b/gtk2_ardour/canvas-sysex.cc
index 667b493d5c..f8948d596e 100644
--- a/gtk2_ardour/canvas-sysex.cc
+++ b/gtk2_ardour/canvas-sysex.cc
@@ -21,6 +21,7 @@
#include "ardour_ui.h"
+#include "midi_region_view.h"
#include "canvas-sysex.h"
using namespace Gnome::Canvas;
@@ -32,7 +33,8 @@ CanvasSysEx::CanvasSysEx(
string& text,
double height,
double x,
- double y)
+ double y,
+ const ARDOUR::MidiModel::SysExPtr sysex)
: CanvasFlag(
region,
parent,
@@ -40,7 +42,8 @@ CanvasSysEx::CanvasSysEx(
ARDOUR_UI::config()->canvasvar_MidiSysExOutline.get(),
ARDOUR_UI::config()->canvasvar_MidiSysExFill.get(),
x,
- y)
+ y),
+ _sysex(sysex)
{
set_text(text);
}
@@ -67,6 +70,29 @@ CanvasSysEx::on_event(GdkEvent* ev)
}
break;
+ case GDK_KEY_PRESS:
+ switch (ev->key.keyval) {
+
+ case GDK_Delete:
+ case GDK_BackSpace:
+ _region.delete_sysex (this);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case GDK_ENTER_NOTIFY:
+ grab_focus();
+ return true;
+ break;
+
+ case GDK_LEAVE_NOTIFY:
+ /* focus will transfer back via the enter-notify
+ * event sent to the midi region view.
+ */
+ break;
+
default:
break;
}