diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc index 7fa3f98236..bb664afa95 100644 --- a/libs/canvas/canvas.cc +++ b/libs/canvas/canvas.cc @@ -536,7 +536,7 @@ GtkCanvas::deliver_event (GdkEvent* event) return true; } - DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas event left unhandled by %1 %2\n", item->whatami(), item->name.empty() ? "[unknown]" : item->name)); + DEBUG_TRACE (PBD::DEBUG::CanvasEvents, string_compose ("canvas event %3 left unhandled by %1 %2\n", item->whatami(), item->name.empty() ? "[unknown]" : item->name, event_type_string (event->type))); if ((item = parent) == 0) { break; diff --git a/libs/canvas/canvas/debug.h b/libs/canvas/canvas/debug.h index 09fa97789b..5feb42c8a5 100644 --- a/libs/canvas/canvas/debug.h +++ b/libs/canvas/canvas/debug.h @@ -46,6 +46,7 @@ namespace ArdourCanvas { LIBCANVAS_API extern std::map last_time; LIBCANVAS_API extern void checkpoint (std::string, std::string); LIBCANVAS_API extern void set_epoch (); + LIBCANVAS_API extern const char* event_type_string (int event_type); LIBCANVAS_API extern int render_count; LIBCANVAS_API extern int render_depth; LIBCANVAS_API extern int dump_depth; diff --git a/libs/canvas/debug.cc b/libs/canvas/debug.cc index 04dd2ef31b..bb154cf528 100644 --- a/libs/canvas/debug.cc +++ b/libs/canvas/debug.cc @@ -19,6 +19,7 @@ #include #include +#include #include "canvas/debug.h" using namespace std; @@ -70,3 +71,87 @@ ArdourCanvas::checkpoint (string group, string message) last_time[group] = now; } +const char* +ArdourCanvas::event_type_string (int event_type) +{ + switch (event_type) { + case GDK_NOTHING: + return "nothing"; + case GDK_DELETE: + return "delete"; + case GDK_DESTROY: + return "destroy"; + case GDK_EXPOSE: + return "expose"; + case GDK_MOTION_NOTIFY: + return "motion_notify"; + case GDK_BUTTON_PRESS: + return "button_press"; + case GDK_2BUTTON_PRESS: + return "2button_press"; + case GDK_3BUTTON_PRESS: + return "3button_press"; + case GDK_BUTTON_RELEASE: + return "button_release"; + case GDK_KEY_PRESS: + return "key_press"; + case GDK_KEY_RELEASE: + return "key_release"; + case GDK_ENTER_NOTIFY: + return "enter_notify"; + case GDK_LEAVE_NOTIFY: + return "leave_notify"; + case GDK_FOCUS_CHANGE: + return "focus_change"; + case GDK_CONFIGURE: + return "configure"; + case GDK_MAP: + return "map"; + case GDK_UNMAP: + return "unmap"; + case GDK_PROPERTY_NOTIFY: + return "property_notify"; + case GDK_SELECTION_CLEAR: + return "selection_clear"; + case GDK_SELECTION_REQUEST: + return "selection_request"; + case GDK_SELECTION_NOTIFY: + return "selection_notify"; + case GDK_PROXIMITY_IN: + return "proximity_in"; + case GDK_PROXIMITY_OUT: + return "proximity_out"; + case GDK_DRAG_ENTER: + return "drag_enter"; + case GDK_DRAG_LEAVE: + return "drag_leave"; + case GDK_DRAG_MOTION: + return "drag_motion"; + case GDK_DRAG_STATUS: + return "drag_status"; + case GDK_DROP_START: + return "drop_start"; + case GDK_DROP_FINISHED: + return "drop_finished"; + case GDK_CLIENT_EVENT: + return "client_event"; + case GDK_VISIBILITY_NOTIFY: + return "visibility_notify"; + case GDK_NO_EXPOSE: + return "no_expose"; + case GDK_SCROLL: + return "scroll"; + case GDK_WINDOW_STATE: + return "window_state"; + case GDK_SETTING: + return "setting"; + case GDK_OWNER_CHANGE: + return "owner_change"; + case GDK_GRAB_BROKEN: + return "grab_broken"; + case GDK_DAMAGE: + return "damage"; + } + + return "unknown"; +}