X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fvtimebar.C;h=2855f161437a55767a2db45bc6ef228f851db896;hb=568bf4145a8bc66472ea3625741dacbd3b56ccc0;hp=d1aa168d21bf09769862e52f497d72ae95fa7ede;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/vtimebar.C b/cinelerra-5.1/cinelerra/vtimebar.C index d1aa168d..2855f161 100644 --- a/cinelerra-5.1/cinelerra/vtimebar.C +++ b/cinelerra-5.1/cinelerra/vtimebar.C @@ -68,12 +68,8 @@ void VTimeBar::draw_time() void VTimeBar::select_label(double position) { EDL *edl = get_edl(); - - if(edl) - { - unlock_window(); - gui->transport->handle_transport(STOP, 1, 0, 0); - lock_window(); + if( edl ) { + gui->stop_transport("VTimeBar::select_label"); position = mwindow->edl->align_to_frame(position, 1); @@ -107,19 +103,21 @@ void VTimeBar::select_label(double position) double VTimeBar::pixel_to_position(int pixel) { - double start = 0, length = 0; + double start = 0, end = get_edl_length(); EDL *edl = get_edl(); - if(edl) - { - start = edl->local_session->preview_start; - if(start >= 0) - length = edl->local_session->preview_end - start; + if( edl ) { + double preview_start = edl->local_session->preview_start; + double preview_end = edl->local_session->preview_end; + if( preview_end >= 0 || preview_start > 0 ) + start = preview_start; + if( preview_end >= 0 && preview_end < end ) + end = preview_end; } - if(length <= 0) - length = get_edl_length(); - return start + (double)pixel * length / get_w(); + if( start > end ) start = end; + return start + (double)pixel * (end - start) / get_w(); } + void VTimeBar::update_cursor() { int rx = get_relative_cursor_x(); @@ -128,4 +126,8 @@ void VTimeBar::update_cursor() update(1); } +double VTimeBar::test_highlight() +{ + return gui->edit_panel->get_position(); +}