+void CWindowCanvas::zoom_auto()
+{
+ use_scrollbars = 0;
+ set_zoom(mwindow->edl, 0);
+ gui->update_canvas();
+}
+
+int CWindowCanvas::do_scroll(EDL *edl, float cursor_x, float cursor_y)
+{
+ float zoom = get_zoom();
+ float zoom_x, zoom_y, conformed_w, conformed_h;
+ get_zooms(edl, 0, zoom_x, zoom_y, conformed_w, conformed_h);
+ if( !zoom ) {
+ x = get_x_offset(mwindow->edl, 0, zoom_x, conformed_w, conformed_h);
+ y = get_y_offset(mwindow->edl, 0, zoom_y, conformed_w, conformed_h);
+ zoom = get_auto_zoom(mwindow->edl);
+ }
+ else {
+ x = gui->x_origin - cursor_x / zoom_x;
+ y = gui->y_origin - cursor_y / zoom_y;
+ }
+ update_zoom(x, y, zoom);
+ gui->update_canvas();
+ return 1;
+}
+