Make selection move together.
This commit is contained in:
parent
0b3c107192
commit
ee577bc06b
27
Region.C
27
Region.C
|
@ -235,7 +235,7 @@ Region::handle ( int m )
|
|||
break;
|
||||
case 3:
|
||||
trim( trimming = RIGHT, X );
|
||||
_log.hold();
|
||||
_log.hold();
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
|
@ -360,21 +360,22 @@ Region::handle ( int m )
|
|||
}
|
||||
}
|
||||
|
||||
if ( Y > y() + h() )
|
||||
if ( ! selected() )
|
||||
{
|
||||
if ( _track->next() )
|
||||
if ( Y > _track->next()->y() )
|
||||
_track->next()->add( this );
|
||||
}
|
||||
else
|
||||
if ( Y < y() )
|
||||
if ( Y > y() + h() )
|
||||
{
|
||||
if ( _track->prev() )
|
||||
if ( Y < _track->prev()->y() + _track->prev()->h() )
|
||||
_track->prev()->add( this );
|
||||
if ( _track->next() )
|
||||
if ( Y > _track->next()->y() )
|
||||
_track->next()->add( this );
|
||||
}
|
||||
|
||||
// _track->damage( FL_DAMAGE_EXPOSE, x(), y(), w(), h() );
|
||||
else
|
||||
if ( Y < y() )
|
||||
{
|
||||
if ( _track->prev() )
|
||||
if ( Y < _track->prev()->y() + _track->prev()->h() )
|
||||
_track->prev()->add( this );
|
||||
}
|
||||
}
|
||||
|
||||
ret = Track_Widget::handle( m );
|
||||
return ret | 1;
|
||||
|
|
|
@ -134,7 +134,8 @@ Track_Widget::handle ( int m )
|
|||
{
|
||||
int nx = (ox + X) - _track->x();
|
||||
|
||||
_offset = timeline->x_to_ts( nx ) + timeline->xoffset;
|
||||
// _offset = timeline->x_to_ts( nx ) + timeline->xoffset;
|
||||
offset( timeline->x_to_ts( nx ) + timeline->xoffset );
|
||||
|
||||
_track->snap( this );
|
||||
}
|
||||
|
|
|
@ -85,13 +85,33 @@ public:
|
|||
delete _selection.front();
|
||||
}
|
||||
|
||||
static void
|
||||
move_selected ( long d )
|
||||
void
|
||||
offset ( nframes_t where )
|
||||
{
|
||||
for ( list <Track_Widget *>::iterator i = _selection.begin(); i != _selection.end(); i++ )
|
||||
i->_offset += d;
|
||||
|
||||
if ( ! selected() )
|
||||
{
|
||||
redraw();
|
||||
_offset = where;
|
||||
}
|
||||
else
|
||||
{
|
||||
long d = where - _offset;
|
||||
|
||||
for ( list <Track_Widget *>::iterator i = _selection.begin(); i != _selection.end(); i++ )
|
||||
{
|
||||
(*i)->redraw();
|
||||
|
||||
if ( d < 0 )
|
||||
(*i)->_offset -= 0 - d;
|
||||
else
|
||||
(*i)->_offset += d;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Fl_Group * parent ( void ) const { return _track; }
|
||||
|
||||
int scroll_x ( void ) const { return timeline->ts_to_x( timeline->xoffset ); }
|
||||
|
@ -124,7 +144,7 @@ public:
|
|||
void track ( Track *t ) { _track = t; }
|
||||
|
||||
nframes_t offset ( void ) const { return _offset; }
|
||||
void offset ( nframes_t o ) { _offset = o; }
|
||||
// void offset ( nframes_t o ) { _offset = o; }
|
||||
|
||||
void end ( nframes_t v ) { _end = v; }
|
||||
nframes_t end ( void ) const { return _end; }
|
||||
|
|
Loading…
Reference in New Issue