summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-05 01:55:07 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-05 01:55:07 +0000
commitc686dee0cee50b09f6c0eda3240b85dee1eaff8f (patch)
tree4f01601be1b730bdb4d730423d9c316b4bb86703
parent839402778fa0d6572395d104c1fe4a3a4fa904d5 (diff)
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
-rw-r--r--gtk2_ardour/editor.h3
-rw-r--r--gtk2_ardour/editor_canvas_events.cc10
2 files changed, 13 insertions, 0 deletions
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;