X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fautos.C;h=1f169df2d2a10edcccb2b95991905ea2e94eae65;hb=e9a3c57c8d3bb4d79e76a4c3942f86a66d3c267e;hp=36abbd7dc756041d1d1cb1a356f24bb312508a70;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/autos.C b/cinelerra-5.1/cinelerra/autos.C index 36abbd7d..1f169df2 100644 --- a/cinelerra-5.1/cinelerra/autos.C +++ b/cinelerra-5.1/cinelerra/autos.C @@ -282,29 +282,21 @@ Auto* Autos::get_auto_at_position(double position) Auto* Autos::get_auto_for_editing(double position) { - if(position < 0) - { + if(position < 0) { position = edl->local_session->get_selectionstart(1); } Auto *result = 0; - position = edl->align_to_frame(position, 0); - - - - -//printf("Autos::get_auto_for_editing %p %p\n", first, default_auto); - - if(edl->session->auto_keyframes) - { - result = insert_auto(track->to_units(position, 0)); + get_prev_auto(track->to_units(position, 0), PLAY_FORWARD, result); +//printf("Autos::get_auto_for_editing %p %p %p\n", default_auto, first, result); + if( !result || !EQUIV(track->from_units(result->position), position) ) { + if( edl->session->auto_keyframes ) { + position = edl->align_to_frame(position, 0); + result = insert_auto(track->to_units(position, 0)); + } } - else - result = get_prev_auto(track->to_units(position, 0), - PLAY_FORWARD, - result); +//printf("Autos::get_auto_for_editing %p %p\n", first, default_auto); -//printf("Autos::get_auto_for_editing %p %p %p\n", default_auto, first, result); return result; }