From 622a4a68dc758f39803e8eecb763d2cf91642f60 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Mon, 26 May 2008 22:49:27 -0500 Subject: [PATCH] Make sequence jumping and duplication work for all sequence widgets. --- Timeline/Sequence_Region.C | 30 ------------------------------ Timeline/Sequence_Widget.C | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/Timeline/Sequence_Region.C b/Timeline/Sequence_Region.C index 1f029c3..0af0e4d 100644 --- a/Timeline/Sequence_Region.C +++ b/Timeline/Sequence_Region.C @@ -219,36 +219,6 @@ Sequence_Region::handle ( int m ) else return 0; } - else if ( Fl::event_button1() ) - { - if ( Fl::event_state() & FL_CTRL ) - { - /* duplication */ - if ( _drag->state == 0 ) - { -// sequence()->add( new Audio_Region( *this ) ); - sequence()->add( this->clone() ); - - _drag->state = 1; - return 1; - } - } - else if ( test_press( FL_BUTTON1 ) && ! selected() ) - { - /* track jumping */ - if ( Y > y() + h() || Y < y() ) - { - Track *t = timeline->track_under( Y ); - - fl_cursor( (Fl_Cursor)1 ); - - if ( t ) - t->handle( FL_ENTER ); - - return 0; - } - } - } return Sequence_Widget::handle( m ); } diff --git a/Timeline/Sequence_Widget.C b/Timeline/Sequence_Widget.C index a287976..f70c0dc 100644 --- a/Timeline/Sequence_Widget.C +++ b/Timeline/Sequence_Widget.C @@ -20,6 +20,7 @@ #include #include "Sequence_Widget.H" +#include "Track.H" using namespace std; @@ -339,6 +340,14 @@ Sequence_Widget::handle ( int m ) _log.hold(); } + if ( test_press( FL_BUTTON1 + FL_CTRL ) && ! _drag->state ) + { + /* duplication */ + sequence()->add( this->clone() ); + + _drag->state = 1; + return 1; + } else if ( test_press( FL_BUTTON1 ) || test_press( FL_BUTTON1 + FL_CTRL ) ) { redraw(); @@ -380,6 +389,22 @@ Sequence_Widget::handle ( int m ) timeline->redraw(); } + if ( ! selected() ) + { + /* track jumping */ + if ( Y > y() + h() || Y < y() ) + { + Track *t = timeline->track_under( Y ); + + fl_cursor( (Fl_Cursor)1 ); + + if ( t ) + t->handle( FL_ENTER ); + + return 0; + } + } + return 1; } else