| @@ -176,7 +176,7 @@ exit( 0 );} | |||||
| } | } | ||||
| MenuItem {} { | MenuItem {} { | ||||
| label {Delete Selected} | label {Delete Selected} | ||||
| callback {timeline->delete_selected();} selected | |||||
| callback {timeline->delete_selected();} | |||||
| xywh {20 20 40 25} shortcut 0xffff | xywh {20 20 40 25} shortcut 0xffff | ||||
| } | } | ||||
| } | } | ||||
| @@ -248,6 +248,11 @@ exit( 0 );} | |||||
| label {&Timeline} open | label {&Timeline} open | ||||
| xywh {0 0 74 25} | xywh {0 0 74 25} | ||||
| } { | } { | ||||
| MenuItem {} { | |||||
| label {&Follow Playhead} | |||||
| callback {Timeline::follow_playhead = menu_picked_value( o );} selected | |||||
| xywh {20 20 40 25} type Toggle value 1 | |||||
| } | |||||
| Submenu {} { | Submenu {} { | ||||
| label {&Snap to} open | label {&Snap to} open | ||||
| xywh {0 0 74 25} | xywh {0 0 74 25} | ||||
| @@ -34,6 +34,7 @@ | |||||
| bool Timeline::draw_with_measure_lines = true; | bool Timeline::draw_with_measure_lines = true; | ||||
| Timeline::snap_e Timeline::snap_to = Bars; | Timeline::snap_e Timeline::snap_to = Bars; | ||||
| bool Timeline::snap_magnetic = true; | bool Timeline::snap_magnetic = true; | ||||
| bool Timeline::follow_playhead = true; | |||||
| const float UPDATE_FREQ = 0.02f; | const float UPDATE_FREQ = 0.02f; | ||||
| @@ -664,6 +665,9 @@ Timeline::redraw_playhead ( void ) | |||||
| { | { | ||||
| redraw_overlay(); | redraw_overlay(); | ||||
| last_playhead = transport->frame; | last_playhead = transport->frame; | ||||
| if ( follow_playhead ) | |||||
| xposition( max( 0, ts_to_x( transport->frame ) - ( ( tracks->w() - Track::width() ) >> 1 ) ) ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -117,6 +117,7 @@ public: | |||||
| static bool draw_with_measure_lines; | static bool draw_with_measure_lines; | ||||
| static snap_e snap_to; | static snap_e snap_to; | ||||
| static bool snap_magnetic; | static bool snap_magnetic; | ||||
| static bool follow_playhead; | |||||
| Tempo_Sequence *tempo_track; | Tempo_Sequence *tempo_track; | ||||
| Time_Sequence *time_track; | Time_Sequence *time_track; | ||||