X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Feditor_canvas_events.cc;h=e94ffe2798102881a94330cb8182b9e826ad2ff9;hb=50a014acf0d7a3d9c57fd36e32836400eeefbd59;hp=5bd0060d231d8eda915d4ec02464a1319bc2d0d9;hpb=e5888d398350b26ba2cdc634cc9791e90b4fc6b6;p=ardour.git diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index 5bd0060d23..e94ffe2798 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -267,13 +267,17 @@ 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); + if (event->crossing.detail != GDK_NOTIFY_INFERIOR) { + set_entered_regionview (rv); + ret = true; + } break; case GDK_LEAVE_NOTIFY: - set_entered_track (0); - set_entered_regionview (0); + if (event->crossing.detail != GDK_NOTIFY_INFERIOR) { + set_entered_regionview (0); + ret = true; + } break; default: @@ -309,6 +313,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 +467,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 +506,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 +551,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 +590,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 +792,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 +834,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 +874,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;