summaryrefslogtreecommitdiff
path: root/libs/canvas/canvas.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-11-15 02:04:28 -0500
committerDavid Robillard <d@drobilla.net>2014-11-15 02:04:28 -0500
commit333c776e0ea5d1380daaa919969cc2f3722fc8eb (patch)
tree1c1541cea25ba1a6123a136b057bf9cd23fbff21 /libs/canvas/canvas.cc
parent89a19808187137b1ddbec7d26786fbe50ed7476a (diff)
Fix MIDI region keyboard editing (add key handling to canvas).
Diffstat (limited to 'libs/canvas/canvas.cc')
-rw-r--r--libs/canvas/canvas.cc25
1 files changed, 24 insertions, 1 deletions
diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc
index 35fe31041d..be0f25d7a2 100644
--- a/libs/canvas/canvas.cc
+++ b/libs/canvas/canvas.cc
@@ -374,7 +374,8 @@ GtkCanvas::GtkCanvas ()
{
/* these are the events we want to know about */
add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK |
- Gdk::SCROLL_MASK | Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK);
+ Gdk::SCROLL_MASK | Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK |
+ Gdk::KEY_PRESS_MASK | Gdk::KEY_RELEASE_MASK);
}
void
@@ -814,6 +815,28 @@ GtkCanvas::on_scroll_event (GdkEventScroll* ev)
return deliver_event (reinterpret_cast<GdkEvent*>(&copy));
}
+/** Handler for GDK key press events.
+ * @param ev Event.
+ * @return true if the event was handled.
+ */
+bool
+GtkCanvas::on_key_press_event (GdkEventKey* ev)
+{
+ DEBUG_TRACE (PBD::DEBUG::CanvasEvents, "canvas key press\n");
+ return deliver_event (reinterpret_cast<GdkEvent*>(ev));
+}
+
+/** Handler for GDK key release events.
+ * @param ev Event.
+ * @return true if the event was handled.
+ */
+bool
+GtkCanvas::on_key_release_event (GdkEventKey* ev)
+{
+ DEBUG_TRACE (PBD::DEBUG::CanvasEvents, "canvas key release\n");
+ return deliver_event (reinterpret_cast<GdkEvent*>(ev));
+}
+
/** Handler for GDK button press events.
* @param ev Event.
* @return true if the event was handled.