X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fkeyframepopup.C;h=7457773a08f51a7c4c38ba79ced81bf969a532bf;hp=b94ae1521bc94d7094715c80b7f09e6d43cf29ed;hb=refs%2Fheads%2Fmaster;hpb=84ac8a2bb3357c04a3f67cf763b0f61ddbbd021d diff --git a/cinelerra-5.1/cinelerra/keyframepopup.C b/cinelerra-5.1/cinelerra/keyframepopup.C index b94ae152..b2992006 100644 --- a/cinelerra-5.1/cinelerra/keyframepopup.C +++ b/cinelerra-5.1/cinelerra/keyframepopup.C @@ -2,6 +2,7 @@ /* * CINELERRA * Copyright (C) 2008 Adam Williams + * Copyright (C) 2003-2016 Cinelerra CV contributors * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -200,7 +201,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 +630,7 @@ KeySpeedPatch::KeySpeedPatch(MWindow *mwindow, PatchGUI *gui, { this->mwindow = mwindow; this->gui = gui; + need_undo = 1; } KeySpeedPatch::~KeySpeedPatch() { @@ -693,8 +695,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 +706,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 +723,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; @@ -770,7 +776,7 @@ int KeySpeedSlider::handle_event() KeySpeedAutoEdge::KeySpeedAutoEdge(MWindow *mwindow, KeySpeedPatch *patch, int x, int y) : BC_Toggle(x, y, mwindow->theme->get_image_set("bump_edge"), - patch->gui->span,_("Edge")) + patch->gui->edge,_("Edge")) { this->mwindow = mwindow; this->patch = patch;