X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowgui.C;h=baea64a815d2e07d1163cb30bf03284ee3440303;hp=679a56e33fe429f1ca001435054ed0059ce78ccf;hb=b9f98da8f1cd8b7b31ead02fa41f299b56cac3da;hpb=6853a2c0b04cc5ff4e87a2022c914227f925cb7f diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 679a56e3..baea64a8 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -251,6 +251,7 @@ void MWindowGUI::get_scrollbars(int flush) void MWindowGUI::create_objects() { + lock_window("MWindowGUI::create_objects"); const int debug = 0; resource_thread = new ResourceThread(mwindow, this); @@ -373,6 +374,7 @@ void MWindowGUI::create_objects() pane[TOP_LEFT_PANE]->canvas->activate(); if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__); + unlock_window(); } void MWindowGUI::redraw_time_dependancies() @@ -666,9 +668,9 @@ void MWindowGUI::update_proxy_toggle() { if( mwindow->edl->session->proxy_scale == 1 && mwindow->edl->session->proxy_disabled_scale == 1 ) - proxy_toggle->hide_window(); + proxy_toggle->hide(); else - proxy_toggle->show_window(); + proxy_toggle->show(); } void MWindowGUI::update_plugintoggles() @@ -2388,15 +2390,36 @@ int FFMpegToggle::handle_event() ProxyToggle::ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y) - : BC_Toggle(x, y, mwindow->theme->proxy_toggle, + : BC_Toggle(x, y, ( !mwindow->edl->session->proxy_use_scaler ? + mwindow->theme->proxy_p_toggle : + mwindow->theme->proxy_s_toggle ), mwindow->edl->session->proxy_disabled_scale != 1) { this->mwindow = mwindow; this->mbuttons = mbuttons; + scaler_images = mwindow->edl->session->proxy_use_scaler; set_tooltip(mwindow->edl->session->proxy_disabled_scale==1 ? _("Disable proxy") : _("Enable proxy")); } +void ProxyToggle::show() +{ + int use_scaler = mwindow->edl->session->proxy_use_scaler; + if( scaler_images != use_scaler ) + set_images(!(scaler_images=use_scaler) ? + mwindow->theme->proxy_p_toggle : + mwindow->theme->proxy_s_toggle ); + draw_face(1, 0); + if( is_hidden() ) + show_window(); +} + +void ProxyToggle::hide() +{ + if( !is_hidden() ) + hide_window(); +} + ProxyToggle::~ProxyToggle() { }