projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update with-git-ffmpeg patches
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
cwindowgui.C
diff --git
a/cinelerra-5.1/cinelerra/cwindowgui.C
b/cinelerra-5.1/cinelerra/cwindowgui.C
index 1266f241653cc662e1e792d0297656977a30c807..22e977bdf3b3ef28e973f726f8bb748c386a5229 100644
(file)
--- a/
cinelerra-5.1/cinelerra/cwindowgui.C
+++ b/
cinelerra-5.1/cinelerra/cwindowgui.C
@@
-442,10
+442,13
@@
int CWindowGUI::keypress_event()
keyboard_zoomout();
result = 1;
break;
keyboard_zoomout();
result = 1;
break;
- case 'f':
- unlock_window();
- canvas->use_fullscreen(canvas->get_fullscreen() ? 0 : 1);
- lock_window("CWindowGUI::keypress_event 1");
+ case 'f': {
+ int on = canvas->get_fullscreen() ? 0 : 1;
+ canvas->set_fullscreen(on, 1);
+ result = 1;
+ break; }
+ case ESC:
+ canvas->set_fullscreen(0, 1);
result = 1;
break;
case 'x':
result = 1;
break;
case 'x':
@@
-465,12
+468,6
@@
int CWindowGUI::keypress_event()
lock_window("CWindowGUI::keypress_event 3");
result = 1;
break;
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();
case LEFT:
if( !ctrl_down() ) {
int alt_down = this->alt_down();
@@
-984,6
+981,9
@@
CWindowCanvas::CWindowCanvas(MWindow *mwindow, CWindowGUI *gui)
{
this->mwindow = mwindow;
this->gui = gui;
{
this->mwindow = mwindow;
this->gui = gui;
+ last_xscroll = 0;
+ last_yscroll = 0;
+ last_zoom = 0;
}
void CWindowCanvas::status_event()
}
void CWindowCanvas::status_event()
@@
-1000,15
+1000,25
@@
void CWindowCanvas::update_zoom(int x, int y, float zoom)
mwindow->edl->session->cwindow_scrollbars = use_scrollbars;
}
mwindow->edl->session->cwindow_scrollbars = use_scrollbars;
}
-int CWindowCanvas::
use_fullscreen(int on
)
+int CWindowCanvas::
set_fullscreen(int on, int unlock
)
{
{
- 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, unlock);
zoom_auto();
zoom_auto();
- if( !on ) gui->zoom_panel->update(0);
- gui->unlock_window();
+ ret = 1;
}
}
- return 1;
+ if( !on && get_fullscreen() ) {
+ Canvas::set_fullscreen(0, unlock);
+ 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()
}
int CWindowCanvas::get_xscroll()
@@
-3085,7
+3095,9
@@
int CWindowCanvas::test_zoom(int &redraw)
if( EQUIV(zoom, my_zoom_table[idx]) ) continue;
if( zoom < my_zoom_table[idx] ) break;
}
if( EQUIV(zoom, my_zoom_table[idx]) ) continue;
if( zoom < my_zoom_table[idx] ) break;
}
- zoom = idx < total_zooms ? my_zoom_table[idx] : 1.1 * zoom;
+ float zoom11 = 1.1f * zoom;
+ zoom = idx < total_zooms ? my_zoom_table[idx] : zoom11;
+ if( zoom > zoom11 ) zoom = zoom11;
break; }
case WHEEL_DOWN: {
int idx = total_zooms;
break; }
case WHEEL_DOWN: {
int idx = total_zooms;
@@
-3093,7
+3105,9
@@
int CWindowCanvas::test_zoom(int &redraw)
if( EQUIV(my_zoom_table[idx], zoom) ) continue;
if( my_zoom_table[idx] < zoom ) break;
}
if( EQUIV(my_zoom_table[idx], zoom) ) continue;
if( my_zoom_table[idx] < zoom ) break;
}
- zoom = idx >= 0 ? my_zoom_table[idx] : 0.9 * zoom;
+ float zoom09 = 0.9f * zoom;
+ zoom = idx >= 0 ? my_zoom_table[idx] : zoom09;
+ if( zoom < zoom09 ) zoom = zoom09;
break; }
case MIDDLE_BUTTON:
if( gui->shift_down() ) {
break; }
case MIDDLE_BUTTON:
if( gui->shift_down() ) {
@@
-3259,7
+3273,7
@@
int CWindowCanvas::button_press_event()
break;
case CWINDOW_ZOOM:
break;
case CWINDOW_ZOOM:
- test_zoom(redraw);
+
result =
test_zoom(redraw);
break;
case CWINDOW_CROP:
break;
case CWINDOW_CROP: