add transition caching with pref, rev read frame caching, cache lock tweaks, fix...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mainundo.C
index dd06f3cd7352227394ce0f7f3a3ea99422e2633d..2e960b3b2fb1c7f62ba01a6b84cf9fc1880508d1 100644 (file)
@@ -187,7 +187,9 @@ int MainUndo::redo_load_flags()
 
 int MainUndo::undo()
 {
+       mwindow->gui->close_keyvalue_popup();
        mwindow->undo_commercial();
+
        UndoStackItem *current = undo_stack->current;
        if( current ) {
                undo_stack->current = next_undo();
@@ -217,14 +219,14 @@ int MainUndo::undo()
                }
        }
 
+       mwindow->reset_caches(1);
        reset_creators();
-       mwindow->reset_caches();
        return 0;
 }
 
-
 int MainUndo::redo()
 {
+       mwindow->gui->close_keyvalue_popup();
        UndoStackItem *current = next_redo();
        if( current ) {
                undo_stack->current = current;
@@ -244,8 +246,8 @@ int MainUndo::redo()
                                update_caption(current ? current->get_description() : "");
                }
        }
+       mwindow->reset_caches(1);
        reset_creators();
-       mwindow->reset_caches();
 //dump();
        return 0;
 }
@@ -254,9 +256,6 @@ int MainUndo::redo()
 // Here the master EDL loads
 int MainUndo::load_from_undo(FileXML *file, uint32_t load_flags)
 {
-       delete mwindow->gui->keyvalue_popup;
-       mwindow->gui->keyvalue_popup = 0;
-
        if( load_flags & LOAD_SESSION ) {
                mwindow->gui->unlock_window();
                mwindow->close_mixers();