diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-30 23:36:30 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-30 23:36:30 -0400 |
commit | 7bbd28aa08593f2c5e72b86090128d584edf184b (patch) | |
tree | 6d7a96c24b420838d6104c828293ed02d52e8f54 /gtk2_ardour/editor_canvas_events.cc | |
parent | 006ba7cd3640c65a4bc5cd5d2bfc22ffc47d1673 (diff) |
notable changes to try to improve most of enter/leave handling for canvas items
Diffstat (limited to 'gtk2_ardour/editor_canvas_events.cc')
-rw-r--r-- | gtk2_ardour/editor_canvas_events.cc | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index 5bd0060d23..b119b989d1 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -267,12 +267,11 @@ Editor::canvas_region_view_event (GdkEvent *event, ArdourCanvas::Item* item, Reg break; case GDK_ENTER_NOTIFY: - set_entered_track (&rv->get_time_axis_view ()); set_entered_regionview (rv); + ret = true; break; case GDK_LEAVE_NOTIFY: - set_entered_track (0); set_entered_regionview (0); break; @@ -309,6 +308,7 @@ Editor::canvas_stream_view_event (GdkEvent *event, ArdourCanvas::Item* item, Rou case GDK_ENTER_NOTIFY: set_entered_track (tv); + ret = true; break; case GDK_LEAVE_NOTIFY: @@ -462,9 +462,13 @@ Editor::canvas_fade_in_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRe } - /* proxy for the regionview */ + /* proxy for the regionview, except enter/leave events */ - return canvas_region_view_event (event, rv->get_canvas_group(), rv); + if (event->type == GDK_ENTER_NOTIFY || event->type == GDK_LEAVE_NOTIFY) { + return true; + } else { + return canvas_region_view_event (event, rv->get_canvas_group(), rv); + } } bool @@ -497,12 +501,10 @@ Editor::canvas_fade_in_handle_event (GdkEvent *event, ArdourCanvas::Item* item, break; case GDK_ENTER_NOTIFY: - set_entered_regionview (rv); ret = enter_handler (item, event, FadeInHandleItem); break; case GDK_LEAVE_NOTIFY: - set_entered_regionview (0); ret = leave_handler (item, event, FadeInHandleItem); break; @@ -544,9 +546,13 @@ Editor::canvas_fade_out_event (GdkEvent *event, ArdourCanvas::Item* item, AudioR } - /* proxy for the regionview */ + /* proxy for the regionview, except enter/leave events */ - return canvas_region_view_event (event, rv->get_canvas_group(), rv); + if (event->type == GDK_ENTER_NOTIFY || event->type == GDK_LEAVE_NOTIFY) { + return true; + } else { + return canvas_region_view_event (event, rv->get_canvas_group(), rv); + } } bool @@ -579,12 +585,10 @@ Editor::canvas_fade_out_handle_event (GdkEvent *event, ArdourCanvas::Item* item, break; case GDK_ENTER_NOTIFY: - set_entered_regionview (rv); ret = enter_handler (item, event, FadeOutHandleItem); break; case GDK_LEAVE_NOTIFY: - set_entered_regionview (0); ret = leave_handler (item, event, FadeOutHandleItem); break; @@ -783,12 +787,10 @@ Editor::canvas_frame_handle_event (GdkEvent* event, ArdourCanvas::Item* item, Re ret = motion_handler (item, event); break; case GDK_ENTER_NOTIFY: - set_entered_regionview (rv); ret = enter_handler (item, event, type); break; case GDK_LEAVE_NOTIFY: - set_entered_regionview (0); ret = leave_handler (item, event, type); break; @@ -827,12 +829,10 @@ Editor::canvas_region_view_name_highlight_event (GdkEvent* event, ArdourCanvas:: ret = true; // force this to avoid progagating the event into the regionview break; case GDK_ENTER_NOTIFY: - set_entered_regionview (rv); ret = enter_handler (item, event, RegionViewNameHighlight); break; case GDK_LEAVE_NOTIFY: - set_entered_regionview (0); ret = leave_handler (item, event, RegionViewNameHighlight); break; @@ -869,12 +869,10 @@ Editor::canvas_region_view_name_event (GdkEvent *event, ArdourCanvas::Item* item ret = motion_handler (item, event); break; case GDK_ENTER_NOTIFY: - set_entered_regionview (rv); ret = enter_handler (item, event, RegionViewName); break; case GDK_LEAVE_NOTIFY: - set_entered_regionview (0); ret = leave_handler (item, event, RegionViewName); break; |