X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowmove.C;h=c76b9b7439cbbd4b340de76ddb9234ca29e27214;hp=c55f6228d81752d65f35f8e07d82d2be42c5ccf1;hb=03fa86e6dc495f9444ae14dad401b1ad6de793fe;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1 diff --git a/cinelerra-5.1/cinelerra/mwindowmove.C b/cinelerra-5.1/cinelerra/mwindowmove.C index c55f6228..c76b9b74 100644 --- a/cinelerra-5.1/cinelerra/mwindowmove.C +++ b/cinelerra-5.1/cinelerra/mwindowmove.C @@ -145,7 +145,7 @@ void MWindow::fit_selection() } -void MWindow::fit_autos(int doall) +void MWindow::fit_autos(int all) { float min = 0, max = 0; double start, end; @@ -167,7 +167,7 @@ void MWindow::fit_autos(int doall) int forstart = edl->local_session->zoombar_showautotype; int forend = edl->local_session->zoombar_showautotype + 1; - if (doall) { + if( all ) { forstart = 0; forend = AUTOGROUPTYPE_COUNT; } @@ -500,21 +500,10 @@ int MWindow::goto_start() int MWindow::goto_position(double position) { - TimelinePane *pane = gui->get_focused_pane(); - int64_t old_view_start = edl->local_session->view_start[pane->number]; - edl->local_session->set_selectionstart(position); - edl->local_session->set_selectionend(position); - find_cursor(); - int64_t new_view_start = edl->local_session->view_start[pane->number]; - if(new_view_start != old_view_start) - samplemovement(new_view_start, pane->number); - update_plugin_guis(); - gui->update_patchbay(); - gui->update_cursor(); + position = edl->align_to_frame(position, 0); + if( position < 0 ) position = 0; + select_point(position); gui->activate_timeline(); - gui->zoombar->update(); - gui->update_timebar(1); - cwindow->update(1, 0, 0, 0, 1); return 0; } @@ -548,8 +537,7 @@ int MWindow::move_left(int64_t distance) { TimelinePane *pane = gui->get_focused_pane(); if(!distance) - distance = pane->canvas->get_w() / - 10; + distance = pane->canvas->get_w() / 10; edl->local_session->view_start[pane->number] -= distance; samplemovement(edl->local_session->view_start[pane->number], pane->number); @@ -560,8 +548,7 @@ int MWindow::move_right(int64_t distance) { TimelinePane *pane = gui->get_focused_pane(); if(!distance) - distance = pane->canvas->get_w() / - 10; + distance = pane->canvas->get_w() / 10; edl->local_session->view_start[pane->number] += distance; samplemovement(edl->local_session->view_start[pane->number], pane->number); @@ -577,7 +564,7 @@ void MWindow::select_all() edl->local_session->set_selectionstart(0); edl->local_session->set_selectionend(edl->tracks->total_length()); } - gui->update(0, 1, 1, 1, 0, 1, 0); + gui->update(0, NORMAL_DRAW, 1, 1, 0, 1, 0); gui->activate_timeline(); cwindow->update(1, 0, 0, 0, 1); update_plugin_guis(); @@ -716,6 +703,25 @@ int MWindow::find_selection(double position, int scroll_display) return 0; } +double MWindow::get_position() +{ + return edl->local_session->get_selectionstart(1); +} + +void MWindow::set_position(double position) +{ + if( position != get_position() ) { + if( position < 0 ) position = 0; + edl->local_session->set_selectionstart(position); + edl->local_session->set_selectionend(position); + gui->lock_window(); + find_cursor(); + gui->update(1, NORMAL_DRAW, 1, 1, 1, 1, 0); + gui->unlock_window(); + cwindow->update(1, 0, 0, 0, 0); + } +} + int MWindow::expand_y() {