Fix MIDI region keyboard editing (add key handling to canvas).

This commit is contained in:
David Robillard 2014-11-15 02:04:28 -05:00
parent 89a1980818
commit 333c776e0e
2 changed files with 26 additions and 1 deletions

View File

@ -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.

View File

@ -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 *);