| @@ -47,6 +47,7 @@ Region::Region ( const Region & rhs ) : Waveform( rhs ) | |||
| color( rhs.color() ); | |||
| selection_color( rhs.selection_color() ); | |||
| labelcolor( rhs.labelcolor() ); | |||
| labeltype( rhs.labeltype() ); | |||
| _track = rhs._track; | |||
| } | |||
| @@ -92,12 +93,13 @@ Region::handle ( int m ) | |||
| static bool copied = false; | |||
| int X = Fl::event_x(); | |||
| int Y = Fl::event_y(); | |||
| switch ( m ) | |||
| { | |||
| case FL_PUSH: | |||
| { | |||
| int X = Fl::event_x(); | |||
| int Y = Fl::event_y(); | |||
| if ( Fl::event_state() & FL_SHIFT ) | |||
| { | |||
| @@ -117,13 +119,8 @@ Region::handle ( int m ) | |||
| } | |||
| else | |||
| { | |||
| ox = x() - Fl::event_x(); | |||
| oy = y() - Fl::event_y(); | |||
| if ( Fl::event_button() == 2 ) | |||
| { | |||
| // _track->add( new Region( *this ) ); | |||
| } | |||
| ox = x() - X; | |||
| oy = y() - Y; | |||
| return 1; | |||
| } | |||
| @@ -140,7 +137,7 @@ Region::handle ( int m ) | |||
| if ( Fl::event_state() & FL_SHIFT ) | |||
| if ( trimming ) | |||
| { | |||
| trim( trimming, Fl::event_x() ); | |||
| trim( trimming, X ); | |||
| return 1; | |||
| } | |||
| else | |||
| @@ -156,34 +153,33 @@ Region::handle ( int m ) | |||
| } | |||
| } | |||
| if ( ox + Fl::event_x() >= _track->x() ) | |||
| position( ox + Fl::event_x(), y() ); | |||
| if ( ox + X >= _track->x() ) | |||
| position( ox + X, y() ); | |||
| if ( Fl::event_y() > y() + h() ) | |||
| if ( Y > y() + h() ) | |||
| { | |||
| if ( _track->next() ) | |||
| _track->next()->add( this ); | |||
| } | |||
| else | |||
| if ( Fl::event_y() < y() ) | |||
| if ( Y < y() ) | |||
| { | |||
| if ( _track->prev() ) | |||
| _track->prev()->add( this ); | |||
| } | |||
| // if ( Fl::event_y() - oy >= h() ) | |||
| parent()->redraw(); | |||
| fl_cursor( FL_CURSOR_MOVE ); | |||
| if ( Fl::event_x() >= timeline.scroll->x() + timeline.scroll->w() || | |||
| Fl::event_x() <= timeline.scroll->x() ) | |||
| if ( X >= timeline.scroll->x() + timeline.scroll->w() || | |||
| X <= timeline.scroll->x() ) | |||
| { | |||
| /* this drag needs to scroll */ | |||
| long pos = timeline.scroll->xposition(); | |||
| if ( Fl::event_x() <= timeline.scroll->x() ) | |||
| if ( X <= timeline.scroll->x() ) | |||
| pos -= 100; | |||
| else | |||
| pos += 100; | |||