X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcwindowgui.C;fp=cinelerra-5.1%2Fcinelerra%2Fcwindowgui.C;h=567c9338c8f129dbd95995eae96831b6c70e88ef;hp=fb0cdd6788300fbd08c7b8a73ee31d8418fb247d;hb=b78b166faf60a1c7357f990b1e2fb0e70be29fee;hpb=83c58d6d78f6bf0d1d1fd4cfba8654906fe6ec29 diff --git a/cinelerra-5.1/cinelerra/cwindowgui.C b/cinelerra-5.1/cinelerra/cwindowgui.C index fb0cdd67..567c9338 100644 --- a/cinelerra-5.1/cinelerra/cwindowgui.C +++ b/cinelerra-5.1/cinelerra/cwindowgui.C @@ -443,9 +443,11 @@ int CWindowGUI::keypress_event() result = 1; break; case 'f': - unlock_window(); - canvas->use_fullscreen(canvas->get_fullscreen() ? 0 : 1); - lock_window("CWindowGUI::keypress_event 1"); + canvas->set_fullscreen(canvas->get_fullscreen() ? 0 : 1); + result = 1; + break; + case ESC: + canvas->set_fullscreen(0); result = 1; break; case 'x': @@ -465,12 +467,6 @@ int CWindowGUI::keypress_event() lock_window("CWindowGUI::keypress_event 3"); result = 1; break; - case ESC: - unlock_window(); - canvas->use_fullscreen(0); - lock_window("CWindowGUI::keypress_event 4"); - result = 1; - break; case LEFT: if( !ctrl_down() ) { int alt_down = this->alt_down(); @@ -984,6 +980,9 @@ CWindowCanvas::CWindowCanvas(MWindow *mwindow, CWindowGUI *gui) { this->mwindow = mwindow; this->gui = gui; + last_xscroll = 0; + last_yscroll = 0; + last_zoom = 0; } void CWindowCanvas::status_event() @@ -1000,15 +999,25 @@ void CWindowCanvas::update_zoom(int x, int y, float zoom) mwindow->edl->session->cwindow_scrollbars = use_scrollbars; } -int CWindowCanvas::use_fullscreen(int on) +int CWindowCanvas::set_fullscreen(int on) { - if( Canvas::use_fullscreen(on) ) { - gui->lock_window("CWindowCanvas::use_fullscreen"); + int ret = 0; + if( on && !get_fullscreen() ) { + last_xscroll = get_xscroll(); + last_yscroll = get_yscroll(); + last_zoom = get_zoom(); + Canvas::set_fullscreen(1); zoom_auto(); - if( !on ) gui->zoom_panel->update(0); - gui->unlock_window(); + ret = 1; } - return 1; + if( !on && get_fullscreen() ) { + Canvas::set_fullscreen(0); + gui->zoom_panel->update(get_zoom()); + update_zoom(last_xscroll, last_yscroll, last_zoom); + gui->update_canvas(); + ret = 1; + } + return ret; } int CWindowCanvas::get_xscroll()