X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.C;h=b0f829bbd7adaeac2f738600d7bb63c74126930c;hb=bd40a11178ed791d8c163877d3c28e5045148c62;hp=e81b4574387016109e21385ac5fd73b8b2a9b796;hpb=6853a2c0b04cc5ff4e87a2022c914227f925cb7f;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index e81b4574..b0f829bb 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -1307,6 +1307,7 @@ void MWindow::stop_mixers() void MWindow::close_mixers(int destroy) { + ArrayList closed; zwindows_lock->lock("MWindow::close_mixers"); for( int i=zwindows.size(); --i>=0; ) { ZWindow *zwindow = zwindows[i]; @@ -1316,12 +1317,12 @@ void MWindow::close_mixers(int destroy) zgui->lock_window("MWindow::select_zwindow 0"); zgui->set_done(0); zgui->unlock_window(); + closed.append(zwindow); } zwindows_lock->unlock(); - for( int i=0; iidx < 0 ) continue; - zwindow->close_window(); + for( int i=0; ijoin(); } } @@ -1554,9 +1555,7 @@ void MWindow::init_indexes() void MWindow::init_gui() { gui = new MWindowGUI(this); - gui->lock_window("MWindow::init_gui"); gui->create_objects(); - gui->unlock_window(); gui->load_defaults(defaults); } @@ -2295,11 +2294,12 @@ int MWindow::enable_proxy() if( edl->session->proxy_scale == 1 && edl->session->proxy_disabled_scale != 1 ) { int new_scale = edl->session->proxy_disabled_scale; + int new_use_scaler = edl->session->proxy_use_scaler; edl->session->proxy_disabled_scale = 1; Asset *asset = new Asset; asset->format = FILE_FFMPEG; asset->load_defaults(defaults, "PROXY_", 1, 1, 0, 0, 0); - ret = to_proxy(asset, new_scale); + ret = to_proxy(asset, new_scale, new_use_scaler); asset->remove_user(); if( ret > 0 ) beep(2000., 1.5, 0.5); @@ -2311,17 +2311,19 @@ int MWindow::disable_proxy() { if( edl->session->proxy_scale != 1 && edl->session->proxy_disabled_scale == 1 ) { + int new_scale = 1; + int new_use_scaler = edl->session->proxy_use_scaler; edl->session->proxy_disabled_scale = edl->session->proxy_scale; Asset *asset = new Asset; asset->format = FILE_FFMPEG; asset->load_defaults(defaults, "PROXY_", 1, 1, 0, 0, 0); - to_proxy(asset, 1); + to_proxy(asset, new_scale, new_use_scaler); asset->remove_user(); } return 1; } -int MWindow::to_proxy(Asset *asset, int new_scale) +int MWindow::to_proxy(Asset *asset, int new_scale, int new_use_scaler) { ArrayList orig_idxbls; ArrayList proxy_assets; @@ -2334,7 +2336,6 @@ int MWindow::to_proxy(Asset *asset, int new_scale) // revert project to original size from current size // remove all session proxy assets at the at the current proxy_scale int proxy_scale = edl->session->proxy_scale; - int proxy_use_scaler = edl->session->proxy_use_scaler; if( proxy_scale > 1 ) { Asset *orig_asset = edl->assets->first; @@ -2439,7 +2440,7 @@ int MWindow::to_proxy(Asset *asset, int new_scale) result = proxy_render.create_needed_proxies(new_scale); if( !result ) // resize project - edl->set_proxy(new_scale, proxy_use_scaler, + edl->set_proxy(new_scale, new_use_scaler, &proxy_render.orig_idxbls, &proxy_render.orig_proxies); undo->update_undo_after(_("proxy"), LOAD_ALL); @@ -2550,14 +2551,14 @@ void MWindow::create_objects(int want_gui, check_language(); init_preferences(); if(splash_window) - splash_window->operation->update(_("Initializing Plugins")); + splash_window->update_status(_("Initializing Plugins")); init_plugins(this, preferences); if(debug) PRINT_TRACE init_ladspa_plugins(this, preferences); if(debug) PRINT_TRACE init_plugin_tips(*plugindb, cin_lang); if(splash_window) - splash_window->operation->update(_("Initializing GUI")); + splash_window->update_status(_("Initializing GUI")); if(debug) PRINT_TRACE init_theme(); @@ -2565,7 +2566,7 @@ void MWindow::create_objects(int want_gui, init_error(); if(splash_window) - splash_window->operation->update(_("Initializing Fonts")); + splash_window->update_status(_("Initializing Fonts")); char string[BCTEXTLEN]; strcpy(string, preferences->plugin_dir); strcat(string, "/" FONT_SEARCHPATH);