X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcanvas.C;h=e3e1b0f3381d2d826fe1a16f7b3aa7ce0df1ce05;hb=b78b166faf60a1c7357f990b1e2fb0e70be29fee;hp=410145f04817c079fb53f7aa7bb8b8032ca79e94;hpb=83c58d6d78f6bf0d1d1fd4cfba8654906fe6ec29;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/canvas.C b/cinelerra-5.1/cinelerra/canvas.C index 410145f0..e3e1b0f3 100644 --- a/cinelerra-5.1/cinelerra/canvas.C +++ b/cinelerra-5.1/cinelerra/canvas.C @@ -135,11 +135,6 @@ 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, int output_h, float zoom, @@ -576,29 +571,34 @@ void Canvas::stop_video() } } - -int Canvas::use_fullscreen(int on) +int Canvas::set_fullscreen(int on, int unlock) { + int ret = 0; + BC_WindowBase *window = get_canvas(); + if( unlock ) + window->unlock_window(); if( on && !get_fullscreen() ) { start_fullscreen(); - return 1; + ret = 1; } if( !on && get_fullscreen() ) { stop_fullscreen(); - return 1; + ret = 1; } - return 0; + if( unlock ) + window->lock_window("Canvas::set_fullscreen"); + return ret; } void Canvas::start_fullscreen() { - set_fullscreen(1); + is_fullscreen = 1; create_canvas(); } void Canvas::stop_fullscreen() { - set_fullscreen(0); + is_fullscreen = 0; create_canvas(); } @@ -661,7 +661,6 @@ void Canvas::create_canvas() } - int Canvas::cursor_leave_event_base(BC_WindowBase *caller) { int result = 0; @@ -693,20 +692,19 @@ int Canvas::button_press_event_base(BC_WindowBase *caller) int Canvas::keypress_event(BC_WindowBase *caller) { int key = caller->get_keypress(); + int on = -1; switch( key ) { case 'f': - caller->unlock_window(); - use_fullscreen(get_fullscreen() ? 0 : 1); - caller->lock_window("Canvas::keypress_event 1"); + on = get_fullscreen() ? 0 : 1; break; case ESC: - caller->unlock_window(); - use_fullscreen(0); - caller->lock_window("Canvas::keypress_event 2"); + on = 0; break; default: return 0; } + if( on >= 0 ) + set_fullscreen(on); return 1; } @@ -933,9 +931,7 @@ int CanvasSubWindowItem::handle_event() { // It isn't a problem to delete the canvas from in here because the event // dispatcher is the canvas subwindow. - canvas->subwindow->unlock_window(); - canvas->use_fullscreen(0); - canvas->subwindow->lock_window("CanvasSubWindowItem::handle_event"); + canvas->set_fullscreen(0); return 1; } @@ -1108,18 +1104,10 @@ int CanvasToggleControls::handle_event() char* CanvasToggleControls::calculate_text(int cwindow_controls) { - if(!cwindow_controls) - return _("Show controls"); - else - return _("Hide controls"); + return !cwindow_controls ? _("Show controls") : _("Hide controls"); } - - - - - CanvasFullScreenItem::CanvasFullScreenItem(Canvas *canvas) : BC_MenuItem(_("Fullscreen"), "f", 'f') { @@ -1127,20 +1115,11 @@ CanvasFullScreenItem::CanvasFullScreenItem(Canvas *canvas) } int CanvasFullScreenItem::handle_event() { - canvas->subwindow->unlock_window(); - canvas->use_fullscreen(1); - canvas->subwindow->lock_window("CanvasFullScreenItem::handle_event"); + canvas->set_fullscreen(1); return 1; } - - - - - - - CanvasPopupRemoveSource::CanvasPopupRemoveSource(Canvas *canvas) : BC_MenuItem(_("Close source")) {