add edit clear submenu/clear hard_edges, fix tessy gl segv, mask toolgui layout,...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / preferencesthread.C
index fbac1848a2f00fa052339c2ec7a44f69ba8793ab..58b659c43a94153ca78dde74fe10b8b1e983a391 100644 (file)
@@ -174,10 +174,10 @@ int PreferencesThread::update_framerate()
 {
        if(thread_running)
        {
-               lock_gui("PreferencesThread::update_framerate");
+               lock_dialog("PreferencesThread::update_framerate");
                PreferencesWindow *window = (PreferencesWindow*)get_gui();
                if(window) window->update_framerate();
-               unlock_gui();
+               unlock_dialog();
        }
        return 0;
 }
@@ -187,10 +187,10 @@ void PreferencesThread::update_rates()
 {
        if(thread_running)
        {
-               lock_gui("PreferencesThread::update_framerate");
+               lock_dialog("PreferencesThread::update_framerate");
                PreferencesWindow *window = (PreferencesWindow*)get_gui();
                if(window) window->update_rates();
-               unlock_gui();
+               unlock_dialog();
        }
 }
 
@@ -212,6 +212,9 @@ int PreferencesThread::apply_settings()
                (*this_aconfig != *aconfig) || (*this_vconfig != *vconfig) ||
                !preferences->brender_asset->equivalent(*mwindow->preferences->brender_asset, 0, 1, edl);
 
+       if( preferences->autocolor_assets != mwindow->preferences->autocolor_assets )
+               redraw_indexes = 1;
+
        if( preferences->yuv_color_space != mwindow->preferences->yuv_color_space ||
            preferences->yuv_color_range != mwindow->preferences->yuv_color_range ) {
                YUV::yuv.yuv_set_colors(
@@ -231,10 +234,12 @@ int PreferencesThread::apply_settings()
        mwindow->stop_brender();
        if( window ) window->lock_window("PreferencesThread::apply_settings 5");
 
-       if( strcmp(preferences->theme, mwindow->preferences->theme) != 0 )
-               mwindow->restart_status = -1; // reload, need new bcresources
-       if( strcmp(preferences->plugin_icons, mwindow->preferences->plugin_icons) != 0 )
-               mwindow->restart_status = -1;
+       if( strcmp(preferences->theme, mwindow->preferences->theme) ||
+           strcmp(preferences->plugin_icons, mwindow->preferences->plugin_icons) ||
+           preferences->awindow_picon_h != mwindow->preferences->awindow_picon_h ||
+           preferences->vicon_size != mwindow->preferences->vicon_size ||
+           preferences->vicon_color_mode != mwindow->preferences->vicon_color_mode )
+               mwindow->restart_status = -1;  // reconstruct/restart program
        if( strcmp(preferences->lv2_path, mwindow->preferences->lv2_path) != 0 )
                reload_plugins = 1;
        if( reload_plugins ) {
@@ -327,7 +332,7 @@ int PreferencesThread::apply_settings()
        if(redraw_times)
        {
                mwindow->gui->lock_window("PreferencesThread::apply_settings 3");
-               mwindow->gui->update(0, 0, 1, 0, 0, 1, 0);
+               mwindow->gui->update(0, NO_DRAW, 1, 0, 0, 1, 0);
                mwindow->gui->redraw_time_dependancies();
                mwindow->gui->unlock_window();
        }
@@ -341,9 +346,16 @@ int PreferencesThread::apply_settings()
 //printf("PreferencesThread::apply_settings 10\n");
        }
 
-       if(redraw_times || redraw_overlays)
+       if(redraw_indexes)
        {
                mwindow->gui->lock_window("PreferencesThread::apply_settings 4");
+               mwindow->gui->draw_trackmovement();
+               mwindow->gui->unlock_window();
+       }
+
+       if(redraw_times || redraw_overlays || redraw_indexes)
+       {
+               mwindow->gui->lock_window("PreferencesThread::apply_settings 5");
                mwindow->gui->flush();
                mwindow->gui->unlock_window();
        }