diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-03-10 12:14:37 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-03-10 12:14:37 -0400 |
commit | 72965e411f57c0879f455acf769b9b59ebcb7d6d (patch) | |
tree | 84dff23869304bf8543a8e89385ae01b767539be | |
parent | 032f394b2a0b975bc47760035de8e25310747972 (diff) |
improve (though not 100% perfect) handling of region trim handles and mouse mode interaction
-rw-r--r-- | gtk2_ardour/time_axis_view_item.cc | 25 |
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; } |