summaryrefslogtreecommitdiff
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
parent89a19808187137b1ddbec7d26786fbe50ed7476a (diff)
Fix MIDI region keyboard editing (add key handling to canvas).
-rw-r--r--libs/canvas/canvas.cc25
-rw-r--r--libs/canvas/canvas/canvas.h2
2 files changed, 26 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.
diff --git a/libs/canvas/canvas/canvas.h b/libs/canvas/canvas/canvas.h
index a764e6ee8a..26cf850d03 100644
--- a/libs/canvas/canvas/canvas.h
+++ b/libs/canvas/canvas/canvas.h
@@ -195,6 +195,8 @@ protected:
void on_size_allocate (Gtk::Allocation&);
bool on_scroll_event (GdkEventScroll *);
bool on_expose_event (GdkEventExpose *);
+ bool on_key_press_event (GdkEventKey *);
+ bool on_key_release_event (GdkEventKey *);
bool on_button_press_event (GdkEventButton *);
bool on_button_release_event (GdkEventButton* event);
bool on_motion_notify_event (GdkEventMotion *);