add refresh_only to scopewindow, fix alsa prefs for capture source, add python to...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cwindowgui.C
index beac0f8184b22e87b9538b2781b7573a56c03a44..006d6ddc59f148e764d5d55d8af2eb44242fc86b 100644 (file)
@@ -58,6 +58,7 @@
 #include "tracks.h"
 #include "transportque.h"
 #include "vtrack.h"
+#include "zoombar.h"
 
 
 static double my_zoom_table[] =
@@ -1094,14 +1095,19 @@ int CWindowCanvas::do_scroll(EDL *edl, float cursor_x, float cursor_y)
 
 int CWindowCanvas::scope_on()
 {
-       return !gui->edit_panel->scope_dialog ? 0 :
-               gui->edit_panel->scope_dialog->running();
+       EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
+       if( !scope_dialog || !scope_dialog->scope_gui ) return 0;
+       if( scope_dialog->scope_gui->use_refresh ) return 0;
+       return scope_dialog->running();
 }
 
-void CWindowCanvas::draw_scope(VFrame *output)
+void CWindowCanvas::draw_scope(VFrame *output, int refresh)
 {
-       if( gui->edit_panel->scope_dialog && output )
-               gui->edit_panel->scope_dialog->process(output);
+       if( !output ) return;
+       EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
+       if( !scope_dialog || !scope_dialog->scope_gui ) return;
+       if( scope_dialog->scope_gui->use_refresh && !refresh ) return;
+       scope_dialog->process(output);
 }
 
 void CWindowCanvas::draw_refresh(int flush)
@@ -2632,6 +2638,11 @@ void CWindowCanvas::reset_keyframe(int do_camera)
                z_keyframe->set_value(1);
 
                gui->sync_parameters(CHANGE_PARAMS, 1, 1);
+               MWindowGUI *mgui = mwindow->gui;
+               mgui->lock_window("CWindowCanvas::reset_keyframe");
+               gui->mwindow->edl->local_session->reset_view_limits();
+               gui->mwindow->gui->zoombar->update_autozoom();
+               mgui->unlock_window();
        }
 }