X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fzwindowgui.C;h=b6cccd03f82352ce4f285a98ccc267bf754f644e;hp=1ffa772d77e2cb0c31a0b6ba8def317abd071c80;hb=98e035865979cda9805a58a85d52f8d70a7ec54e;hpb=0df48ad2d876409c5beeae2e21933a728ea76c33 diff --git a/cinelerra-5.1/cinelerra/zwindowgui.C b/cinelerra-5.1/cinelerra/zwindowgui.C index 1ffa772d..b6cccd03 100644 --- a/cinelerra-5.1/cinelerra/zwindowgui.C +++ b/cinelerra-5.1/cinelerra/zwindowgui.C @@ -96,26 +96,23 @@ int ZWindowGUI::keypress_event() close_event(); return 1; } - unlock_window(); int result = 1; switch( key ) { - case 'f': - if( canvas->get_fullscreen() ) - canvas->stop_fullscreen(); - else - canvas->start_fullscreen(); - break; + case 'f': { + int on = canvas->get_fullscreen() ? 0 : 1; + canvas->set_fullscreen(on, 1); + break; } case ESC: - if( canvas->get_fullscreen() ) - canvas->stop_fullscreen(); + canvas->set_fullscreen(0, 1); break; default: + unlock_window(); mwindow->gui->lock_window("ZWindowGUI::keypress_event"); result = mwindow->gui->mbuttons->transport->do_keypress(key); mwindow->gui->unlock_window(); + lock_window("ZWindowGUI::keypress_event 1"); } - lock_window("ZWindowGUI::keypress_event 1"); return result; } @@ -248,3 +245,17 @@ void ZWindowCanvas::draw_refresh(int flush) cvs->flash(flush); } +float ZWindowCanvas::get_auto_zoom() +{ + EDL *edl = gui->zwindow->edl; + if( !edl ) edl = mwindow->edl; + float conformed_w, conformed_h; + edl->calculate_conformed_dimensions(0, conformed_w, conformed_h); + BC_WindowBase *window = get_canvas(); + int cw = window ? window->get_w() : w; + int ch = window ? window->get_h() : h; + float zoom_x = cw / conformed_w; + float zoom_y = ch / conformed_h; + return zoom_x < zoom_y ? zoom_x : zoom_y; +} +