diff options
author | David Robillard <d@drobilla.net> | 2014-11-15 02:04:28 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-11-15 02:04:28 -0500 |
commit | 333c776e0ea5d1380daaa919969cc2f3722fc8eb (patch) | |
tree | 1c1541cea25ba1a6123a136b057bf9cd23fbff21 | |
parent | 89a19808187137b1ddbec7d26786fbe50ed7476a (diff) |
Fix MIDI region keyboard editing (add key handling to canvas).
-rw-r--r-- | libs/canvas/canvas.cc | 25 | ||||
-rw-r--r-- | libs/canvas/canvas/canvas.h | 2 |
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*>(©)); } +/** 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 *); |