X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fkeyframepopup.C;h=c3dcaea1c73024d3f0ee7980e749f1ec78cb8187;hp=8c8e582b8bd1d3a6a9578b240be3f0eaa377541f;hb=54b918a8b84f666bf32548ebd12b93908061d2a6;hpb=271d07e4385f187b88ffcd986e9ecf5635a51718 diff --git a/cinelerra-5.1/cinelerra/keyframepopup.C b/cinelerra-5.1/cinelerra/keyframepopup.C index 8c8e582b..c3dcaea1 100644 --- a/cinelerra-5.1/cinelerra/keyframepopup.C +++ b/cinelerra-5.1/cinelerra/keyframepopup.C @@ -200,7 +200,7 @@ int KeyframePopupDelete::handle_event() mwindow->undo->update_undo_before(_("delete keyframe"), 0); mwindow->speed_before(); delete popup->keyframe_auto; - mwindow->speed_after(1); + mwindow->speed_after(1, 1); mwindow->undo->update_undo_after(_("delete keyframe"), LOAD_ALL); mwindow->save_backup(); @@ -629,6 +629,7 @@ KeySpeedPatch::KeySpeedPatch(MWindow *mwindow, PatchGUI *gui, { this->mwindow = mwindow; this->gui = gui; + need_undo = 1; } KeySpeedPatch::~KeySpeedPatch() { @@ -693,8 +694,10 @@ void KeySpeedPatch::update_speed(float v) float change = v - current->get_value(gui->edge); if( !change ) return; gui->change_source = 1; - int need_undo = !speed_autos->auto_exists_for_editing(position); - mwindow->undo->update_undo_before(_("speed"), need_undo ? 0 : this); + if( need_undo ) { + need_undo = 0; + mwindow->undo->update_undo_before(_("speed"), this); + } current->bump_value(v, gui->edge, gui->span); if( track->is_ganged() ) { TrackCanvas *track_canvas = gui->patchbay->pane->canvas; @@ -702,8 +705,6 @@ void KeySpeedPatch::update_speed(float v) track_canvas->update_ganged_autos(0, track, current); track_canvas->clear_ganged_autos(); } - mwindow->undo->update_undo_after(_("speed"), - LOAD_AUTOMATION + LOAD_EDITS + LOAD_TIMEBAR); gui->change_source = 0; mwindow->sync_parameters(CHANGE_PARAMS); @@ -721,7 +722,11 @@ KeySpeedOK::KeySpeedOK(KeySpeedPatch *key_speed_patch, int x, int y, VFrame **im int KeySpeedOK::handle_event() { MWindow *mwindow = key_speed_patch->mwindow; - mwindow->speed_after(1); + mwindow->speed_after(1, 1); + if( !key_speed_patch->need_undo ) { + mwindow->undo->update_undo_after(_("speed"), + LOAD_AUTOMATION + LOAD_EDITS + LOAD_TIMEBAR); + } mwindow->resync_guis(); mwindow->gui->close_keyvalue_popup(); return 1;