improve (though not 100% perfect) handling of region trim handles and mouse mode...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 10 Mar 2014 16:14:37 +0000 (12:14 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 10 Mar 2014 16:14:37 +0000 (12:14 -0400)
gtk2_ardour/time_axis_view_item.cc

index a4342d371fbdf9a4d16833ce6e5259fa6c83b363..8e194c63a28415f6c74eadc64cdd1aa49cec411e 100644 (file)
@@ -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;
 }