ffmpeg index marker fix, layout fixes, quit deadlock fix
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindow.C
index a9e813af4131a8f9aaf61f1b23b190d3696ce967..27e0917ec7eabe59d3782ee1f8c5973d9e62fd2d 100644 (file)
@@ -235,6 +235,7 @@ MWindow::~MWindow()
        delete create_bd;       create_bd = 0;
        delete create_dvd;      create_dvd = 0;
        delete batch_render;    batch_render = 0;
+       delete render;          render = 0;
        commit_commercial();
        if( commercials && !commercials->remove_user() ) commercials = 0;
 
@@ -292,15 +293,13 @@ MWindow::~MWindow()
        finit_error();
        keyframe_threads->remove_all_objects();
        colormodels.remove_all_objects();
-       delete gui;             gui = 0;
-       delete render;          render = 0;
        delete awindow;         awindow = 0;
        delete lwindow;         lwindow = 0;
        delete twindow;         twindow = 0;
        delete wwindow;         wwindow = 0;
        delete gwindow;         gwindow = 0;
-       // must be last or nouveau chokes
        delete cwindow;         cwindow = 0;
+       delete gui;             gui = 0;
        //delete file_server;  file_server = 0; // reusable
        delete mainindexes;     mainindexes = 0;
        delete mainprogress;    mainprogress = 0;
@@ -340,8 +339,8 @@ MWindow::~MWindow()
 
 void MWindow::quit(int unlock)
 {
-       stop_playback(1);
        if(unlock) gui->unlock_window();
+       stop_playback(1);
 
        brender_lock->lock("MWindow::quit");
        delete brender;         brender = 0;
@@ -2438,7 +2437,7 @@ void MWindow::hide_plugin(Plugin *plugin, int lock)
                        ptr->hide_gui();
                        delete_plugin(ptr);
 //sleep(1);
-//                     return;
+                       return;
                }
        }
        if(lock) plugin_gui_lock->unlock();