load files search box, avoid segv in get_prev_keyframe, fix titles only handles,...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / keyframes.C
index 9e90bd641d796fe43f76481d4a97753bb4a1a92b..696c8068387ec4ac3c16c58ddb2f0d563fe8122d 100644 (file)
@@ -80,31 +80,16 @@ KeyFrame* KeyFrames::get_prev_keyframe(int64_t position,
 
 KeyFrame* KeyFrames::get_keyframe()
 {
+       int64_t pos = track->to_units(edl->local_session->get_selectionstart(1), 0);
 // Search for keyframe on or before selection
-       KeyFrame *result =
-               get_prev_keyframe(
-                       track->to_units(edl->local_session->get_selectionstart(1), 0),
-                       PLAY_FORWARD);
-
-// Return nearest keyframe if not in automatic keyframe generation
-       if(!edl->session->auto_keyframes)
-       {
-               return result;
-       }
-       else
-// Return new keyframe
-       if(result == (KeyFrame*)default_auto ||
-               result->position != track->to_units(edl->local_session->get_selectionstart(1), 0))
-       {
-               return (KeyFrame*)insert_auto(track->to_units(edl->local_session->get_selectionstart(1), 0));
+       KeyFrame *result = get_prev_keyframe(pos, PLAY_FORWARD);
+       if( edl->session->auto_keyframes ) {
+               if( !result || result->position != pos ||
+                   result == (KeyFrame*)default_auto )
+// generate keyframes while tweeking, and no keyframe found at pos
+                       result = (KeyFrame*)insert_auto(pos);
        }
-       else
-// Return existing keyframe
-       {
-               return result;
-       }
-
-       return 0;
+       return result;
 }