From c686dee0cee50b09f6c0eda3240b85dee1eaff8f Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 5 Jul 2010 01:55:07 +0000 Subject: [PATCH] Set entered_regionview on entry into region view canvas item children. Should fix #3300. git-svn-id: svn://localhost/ardour2/branches/3.0@7372 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor.h | 3 +++ gtk2_ardour/editor_canvas_events.cc | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index c4203efa1c..2300fe7c20 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1928,6 +1928,9 @@ public: sigc::connection step_timeout; TimeAxisView* entered_track; + /** If the mouse is over a RegionView or one of its child canvas items, this is set up + to point to the RegionView. Otherwise it is 0. + */ RegionView* entered_regionview; diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index bf84eb20e9..0b9d8a3793 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -406,10 +406,12 @@ 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; @@ -485,10 +487,12 @@ 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; @@ -793,10 +797,12 @@ 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; @@ -835,10 +841,12 @@ 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; @@ -875,10 +883,12 @@ 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;