/*
* CINELERRA
* Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ * 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
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();
{
this->mwindow = mwindow;
this->gui = gui;
+ need_undo = 1;
}
KeySpeedPatch::~KeySpeedPatch()
{
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;
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);
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;
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;