summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-03-10 12:14:37 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2014-03-10 12:14:37 -0400
commit72965e411f57c0879f455acf769b9b59ebcb7d6d (patch)
tree84dff23869304bf8543a8e89385ae01b767539be
parent032f394b2a0b975bc47760035de8e25310747972 (diff)
improve (though not 100% perfect) handling of region trim handles and mouse mode interaction
-rw-r--r--gtk2_ardour/time_axis_view_item.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc
index a4342d371f..8e194c63a2 100644
--- a/gtk2_ardour/time_axis_view_item.cc
+++ b/gtk2_ardour/time_axis_view_item.cc
@@ -931,17 +931,24 @@ TimeAxisViewItem::set_trim_handle_colors()
bool
TimeAxisViewItem::frame_handle_crossing (GdkEvent* ev, ArdourCanvas::Rectangle* item)
{
- if (trackview.editor().effective_mouse_mode() == Editing::MouseObject && !trackview.editor().internal_editing()) {
- switch (ev->type) {
- case GDK_LEAVE_NOTIFY:
- item->set_fill (false);
- break;
- case GDK_ENTER_NOTIFY:
+ switch (ev->type) {
+ case GDK_LEAVE_NOTIFY:
+ /* always hide the handle whenever we leave, no matter what mode */
+ item->set_fill (false);
+ break;
+ case GDK_ENTER_NOTIFY:
+ if (trackview.editor().effective_mouse_mode() == Editing::MouseObject &&
+ !trackview.editor().internal_editing()) {
+ /* never set this to be visible in internal
+ edit mode. Note, however, that we do need to
+ undo visibility (LEAVE_NOTIFY case above) no
+ matter what the mode is.
+ */
item->set_fill (true);
- break;
- default:
- break;
}
+ break;
+ default:
+ break;
}
return false;
}