X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcanvas.C;h=d536cb1f21a3f5afbce4d32154225f1b39e989d6;hb=82cd36a45514043812fc911a6f1b0b28ebe27e9c;hp=6b3f65085c920ea3994a224e8007287b4eb59b7a;hpb=47f71d004db08fb289428240fb87ce97c64382d2;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/canvas.C b/cinelerra-5.1/cinelerra/canvas.C index 6b3f6508..d536cb1f 100644 --- a/cinelerra-5.1/cinelerra/canvas.C +++ b/cinelerra-5.1/cinelerra/canvas.C @@ -88,6 +88,7 @@ void Canvas::reset() canvas_subwindow = 0; canvas_fullscreen = 0; is_processing = 0; + is_fullscreen = 0; cursor_inside = 0; } @@ -135,6 +136,16 @@ void Canvas::use_vwindow() canvas_menu->use_vwindow(); } +int Canvas::get_fullscreen() +{ + return is_fullscreen; +} + +void Canvas::set_fullscreen(int value) +{ + is_fullscreen = value; +} + // Get dimensions given a zoom void Canvas::calculate_sizes(float aspect_ratio, int output_w, @@ -589,7 +600,7 @@ void Canvas::update_geometry(EDL *edl, int x, int y, int w, int h) vw != view_w || vh != view_h ) redraw = 1; } if( !redraw ) return; - reposition_window(edl, x, y, w, y); + reposition_window(edl, x, y, w, h); } void Canvas::reposition_window(EDL *edl, int x, int y, int w, int h) @@ -756,8 +767,7 @@ void Canvas::create_canvas() int x, y, w, h; wdw->get_fullscreen_geometry(x, y, w, h); - if( canvas_fullscreen ) - { + if( canvas_fullscreen ) { if( x != canvas_fullscreen->get_x() || y != canvas_fullscreen->get_y() || w != canvas_fullscreen->get_w() || @@ -766,26 +776,21 @@ void Canvas::create_canvas() canvas_fullscreen = 0; } } - if(!canvas_fullscreen) - { + if( !canvas_fullscreen ) canvas_fullscreen = new CanvasFullScreen(this, w, h); - } - else - { - canvas_fullscreen->reposition_window(x, y); - canvas_fullscreen->show_window(); - } + canvas_fullscreen->show_window(); + canvas_fullscreen->sync_display(); + canvas_fullscreen->reposition_window(x, y); } - - if(!video_on) - { + if( !video_on ) { get_canvas()->lock_window("Canvas::create_canvas 1"); draw_refresh(); get_canvas()->unlock_window(); } - if(video_on) get_canvas()->start_video(); + if( video_on ) + get_canvas()->start_video(); get_canvas()->lock_window("Canvas::create_canvas 2"); get_canvas()->focus(); @@ -895,20 +900,16 @@ void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame) refresh_frame->transfer_from(output_frame, -1); } - -void Canvas::clear(int flush) +void Canvas::clear(int flash) { - if( refresh_frame ) - refresh_frame->clear_frame(); - BC_WindowBase *wdw = get_canvas(); - if( !wdw ) return; - wdw->set_bg_color(BLACK); - wdw->clear_box(0,0, wdw->get_w(), wdw->get_h()); - wdw->flash(flush); + BC_WindowBase *cwdw = get_canvas(); + if( !cwdw ) return; + cwdw->set_bg_color(BLACK); + cwdw->clear_box(0,0, cwdw->get_w(), cwdw->get_h()); + if( flash ) cwdw->flash(); } - CanvasOutput::CanvasOutput(Canvas *canvas, int x, int y,