diff --git a/canvas.C b/canvas.C index e08f7c1..93feb9d 100644 --- a/canvas.C +++ b/canvas.C @@ -856,6 +856,20 @@ Canvas::h_zoom ( float n ) resize_grid(); } +void +Canvas::v_zoom_fit ( void ) +{ + if ( ! m.grid ) + return; + + changed_mapping(); + + m.vp->h = m.maxh; + m.vp->y = 0; + + resize_grid(); +} + /** adjust vertical zoom (* n) */ void Canvas::v_zoom ( float n ) diff --git a/canvas.H b/canvas.H index e0cb493..f93b68a 100644 --- a/canvas.H +++ b/canvas.H @@ -152,6 +152,7 @@ public: void pan ( int dir, int n ); void h_zoom ( float n ); void v_zoom ( float n ); + void v_zoom_fit ( void ); void notes ( char *s ); char * notes ( void ); void randomize_row ( int y ); diff --git a/main.C b/main.C index 99c0322..daa940b 100644 --- a/main.C +++ b/main.C @@ -152,6 +152,8 @@ main ( int argc, char **argv ) init_song(); + pattern::signal_create_destroy.connect( mem_fun( phrase_c, &Canvas::v_zoom_fit ) ); + if ( ! lash.init( &argc, &argv ) ) WARNING( "error initializing LASH" );