| @@ -798,7 +798,10 @@ Canvas::invert_selection ( void ) | |||||
| void | void | ||||
| Canvas::crop ( void ) | Canvas::crop ( void ) | ||||
| { | { | ||||
| m.grid->crop( m.p1, m.p2 ); | |||||
| if ( m.p3 == m.p4 ) | |||||
| m.grid->crop( m.p1, m.p2 ); | |||||
| else | |||||
| m.grid->crop( m.p1, m.p2, rtn( m.p3 ), rtn( m.p4 ) ); | |||||
| m.vp->x = 0; | m.vp->x = 0; | ||||
| @@ -594,6 +594,25 @@ Grid::crop ( int l, int r ) | |||||
| unlock(); | unlock(); | ||||
| } | } | ||||
| void | |||||
| Grid::crop ( int l, int r, int t, int b ) | |||||
| { | |||||
| lock(); | |||||
| _rw->events.push_selection(); | |||||
| select( l, r, t, b ); | |||||
| _rw->events.invert_selection(); | |||||
| _rw->events.remove_selected(); | |||||
| _rw->events.pop_selection(); | |||||
| crop( l, r ); | |||||
| unlock(); | |||||
| } | |||||
| void | void | ||||
| Grid::_relink ( void ) | Grid::_relink ( void ) | ||||
| @@ -213,6 +213,7 @@ public: | |||||
| void move_selected ( int l ); | void move_selected ( int l ); | ||||
| void crop ( int l, int r ); | void crop ( int l, int r ); | ||||
| void crop ( int l, int r, int t, int b ); | |||||
| void toggle_select ( int x, int y ); | void toggle_select ( int x, int y ); | ||||
| void insert_time ( int x, int r ); | void insert_time ( int x, int r ); | ||||