X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.C;h=0fe6752f3598394b1fe16e6d1900e18a6c0631ba;hp=d6b756163672804ac4797bcedf45ad2befe3104b;hb=1da768016a2ecba0296b03d75c02879f99a0f582;hpb=cee5af08aebf1f2d45ddbcee1a67b7cc052e8c8f diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index d6b75616..0fe6752f 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -301,6 +301,7 @@ MWindow::~MWindow() gui->del_keyboard_listener( (int (BC_WindowBase::*)(BC_WindowBase *)) &MWindowGUI::keyboard_listener); + reset_caches(); #if 0 // release the hounds if( awindow && awindow->gui ) awindow->gui->close(0); @@ -329,7 +330,6 @@ MWindow::~MWindow() gui->close(0); join(); #endif - reset_caches(); dead_plugins->remove_all_objects(); // must delete theme before destroying plugindb // theme destructor will be deleted by delete_plugins @@ -1210,10 +1210,9 @@ ZWindow *MWindow::get_mixer(Mixer *&mixer) return zwindow; } -void MWindow::del_mixer(ZWindow *zwindow) +void MWindow::close_mixer(ZWindow *zwindow) { - zwindows_lock->lock("MWindow::del_mixer 0"); - edl->mixers.del_mixer(zwindow->idx); + zwindows_lock->lock("MWindow::close_mixer 0"); if( session->selected_zwindow >= 0 ) { int i = zwindows.number_of(zwindow); if( i >= 0 && i < session->selected_zwindow ) @@ -1222,7 +1221,7 @@ void MWindow::del_mixer(ZWindow *zwindow) session->selected_zwindow = -1; } zwindows_lock->unlock(); - gui->lock_window("MWindow::del_mixer 1"); + gui->lock_window("MWindow::close_mixer 1"); gui->update_mixers(0, -1); gui->unlock_window(); } @@ -3750,6 +3749,7 @@ void MWindow::update_project(int load_mode) for( int i=0; imixers.size(); ++i ) { Mixer *mixer = edl->mixers[i]; + if( !mixer->show ) continue; ZWindow *zwindow = get_mixer(mixer); zwindow->set_title(mixer->title); zwindow->start(); @@ -4441,6 +4441,7 @@ int MWindow::create_aspect_ratio(float &w, float &h, int width, int height) void MWindow::reset_caches() { + awindow->gui->stop_vicon_drawing(); frame_cache->remove_all(); wave_cache->remove_all(); audio_cache->remove_all(); @@ -4464,6 +4465,7 @@ void MWindow::reset_caches() void MWindow::remove_from_caches(Indexable *idxbl) { + awindow->gui->stop_vicon_drawing(); frame_cache->remove_item(idxbl); wave_cache->remove_item(idxbl); if( gui->render_engine && @@ -4497,12 +4499,13 @@ void MWindow::remove_from_caches(Indexable *idxbl) if( zwindow->zgui->playback_engine->video_cache ) zwindow->zgui->playback_engine->video_cache->delete_entry(asset); } + awindow->gui->start_vicon_drawing(); } void MWindow::remove_assets_from_project(int push_undo, int redraw, int delete_indexes, ArrayList *drag_assets, ArrayList *drag_clips) { - awindow->gui->close_view_popup(); + awindow->gui->stop_vicon_drawing(); // Remove from VWindow. if( drag_clips ) {