tags tweak, rework canvas lock/refresh, vgui/cgui segv if closed while playing
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cwindowtool.C
index 5f7c41657874cf49379e8c354164fb0db2987c5f..99577fd85a63e1b6c4c34d287b09834b3bc2eeb4 100644 (file)
@@ -466,9 +466,7 @@ void CWindowCropGUI::handle_event()
        mwindow->edl->session->crop_y2 = atol(height->get_text()) +
                mwindow->edl->session->crop_y1;
        update();
-       mwindow->cwindow->gui->lock_window("CWindowCropGUI::handle_event");
-       mwindow->cwindow->gui->canvas->draw_refresh();
-       mwindow->cwindow->gui->unlock_window();
+       mwindow->cwindow->gui->canvas->redraw(1);
 }
 
 void CWindowCropGUI::update()
@@ -807,15 +805,10 @@ void CWindowCameraGUI::create_objects()
 
 void CWindowCameraGUI::update_preview()
 {
-       mwindow->gui->lock_window("CWindowCameraGUI::update_preview");
-       mwindow->restart_brender();
-       mwindow->gui->draw_overlays(1);
-       mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->gui->unlock_window();
-       mwindow->cwindow->refresh_frame(CHANGE_NONE);
-       mwindow->cwindow->gui->lock_window("CWindowCameraGUI::update_preview");
-       mwindow->cwindow->gui->canvas->draw_refresh();
-       mwindow->cwindow->gui->unlock_window();
+       CWindowGUI *cgui = mwindow->cwindow->gui;
+       cgui->lock_window("CWindowCameraGUI::update_preview");
+       cgui->sync_parameters(CHANGE_PARAMS, 0, 1);
+       cgui->unlock_window();
 }
 
 
@@ -1210,15 +1203,10 @@ void CWindowProjectorGUI::create_objects()
 
 void CWindowProjectorGUI::update_preview()
 {
-       mwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
-       mwindow->restart_brender();
-       mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->gui->draw_overlays(1);
-       mwindow->gui->unlock_window();
-       mwindow->cwindow->refresh_frame(CHANGE_NONE);
-       mwindow->cwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
-       mwindow->cwindow->gui->canvas->draw_refresh();
-       mwindow->cwindow->gui->unlock_window();
+       CWindowGUI *cgui = mwindow->cwindow->gui;
+       cgui->lock_window("CWindowProjectorGUI::update_preview");
+       cgui->sync_parameters(CHANGE_PARAMS, 0, 1);
+       cgui->unlock_window();
 }
 
 void CWindowProjectorGUI::handle_event()
@@ -2203,15 +2191,12 @@ void CWindowMaskGUI::handle_event()
 
 void CWindowMaskGUI::update_preview()
 {
-       mwindow->gui->lock_window("CWindowMaskGUI::update_preview");
-       mwindow->restart_brender();
-       mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->gui->draw_overlays(1);
-       mwindow->gui->unlock_window();
-       mwindow->cwindow->refresh_frame(CHANGE_NONE);
-       mwindow->cwindow->gui->lock_window("CWindowMaskGUI::update_preview");
-       mwindow->cwindow->gui->canvas->draw_refresh();
-       mwindow->cwindow->gui->unlock_window();
+       unlock_window();
+       CWindowGUI *cgui = mwindow->cwindow->gui;
+       cgui->lock_window("CWindowMaskGUI::update_preview");
+       cgui->sync_parameters(CHANGE_PARAMS, 0, 1);
+       cgui->unlock_window();
+       lock_window("CWindowMaskGUI::update_preview");
 }