X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrackcanvas.C;h=8ff10d201436032da96830af9e896bf38e342c76;hb=b2eb290b3f6e5c233393017aa152e67c76243130;hp=cbc62e1f1a7f4b3055594077b68ae5486e538fe9;hpb=853407b57330e275b6c58432c678159b2eac00db;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/trackcanvas.C b/cinelerra-5.1/cinelerra/trackcanvas.C index cbc62e1f..8ff10d20 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.C +++ b/cinelerra-5.1/cinelerra/trackcanvas.C @@ -3619,7 +3619,7 @@ void TrackCanvas::update_drag_handle() double position = edit_mode != MOVE_NO_EDITS && ( session->drag_handle || edit_mode == MOVE_ONE_EDIT ) ? session->drag_position : session->drag_start; - Track *track = session->drag_edit->edits->track; + Track *track = session->drag_handle_track(); int64_t pos = track->to_units(position, 0); render_handle_frame(edl, pos, shift_down() ? 0 : session->drag_handle ? 1 : 2); @@ -3660,6 +3660,8 @@ int TrackCanvas::render_handle_frame(EDL *edl, int64_t pos, int mode) int w = canvas->w, h = canvas->h, w2 = w/2, h2 = h/2; int lx = 0, ly = h2/2, rx = w2, ry = h2/2; BC_WindowBase *window = canvas->get_canvas(); + window->set_color(BLACK); + window->clear_box(0,0, window->get_w(),window->get_h()); window->draw_vframe(&vlt, lx,ly, w2,h2, 0,0,vlt.get_w(),vlt.get_h()); window->draw_vframe(&vrt, rx,ry, w2,h2, 0,0,vrt.get_w(),vrt.get_h()); window->flash(1); @@ -3668,7 +3670,7 @@ int TrackCanvas::render_handle_frame(EDL *edl, int64_t pos, int mode) break; } case 1: case 2: { - Track *track = mwindow->session->drag_edit->edits->track; + Track *track = mwindow->session->drag_handle_track(); double position = track->from_units(mode == 1 ? left : pos); if( position < 0 ) position = 0; edl->local_session->set_selectionstart(position); @@ -4451,8 +4453,6 @@ int TrackCanvas::do_edit_handles(int cursor_x, int cursor_y, int button_press, int result = 0; for( Track *track=mwindow->edl->tracks->first; track && !result; track=track->next) { - if( !track->show_assets() ) continue; - for( Edit *edit=track->edits->first; edit && !result; edit=edit->next ) { int64_t edit_x, edit_y, edit_w, edit_h; edit_dimensions(edit, edit_x, edit_y, edit_w, edit_h); @@ -4462,7 +4462,8 @@ int TrackCanvas::do_edit_handles(int cursor_x, int cursor_y, int button_press, if( cursor_x < edit_x + HANDLE_W ) { edit_result = edit; handle_result = 0; - if( cursor_y >= edit_y+edit_h - HANDLE_W ) { + if( cursor_y >= edit_y+edit_h - HANDLE_W && + track->show_assets() ) { new_cursor = DOWNLEFT_RESIZE; if( button_press == LEFT_BUTTON ) result = -1; @@ -4473,7 +4474,8 @@ int TrackCanvas::do_edit_handles(int cursor_x, int cursor_y, int button_press, else if( cursor_x >= edit_x + edit_w - HANDLE_W ) { edit_result = edit; handle_result = 1; - if( cursor_y >= edit_y+edit_h - HANDLE_W ) { + if( cursor_y >= edit_y+edit_h - HANDLE_W && + track->show_assets() ) { new_cursor = DOWNRIGHT_RESIZE; if( button_press == LEFT_BUTTON ) result = -1; @@ -4512,7 +4514,7 @@ int TrackCanvas::do_edit_handles(int cursor_x, int cursor_y, int button_press, update_overlay = 1; } } - else if( result < 0) { + else if( result < 0 ) { mwindow->undo->update_undo_before(); if( !shift_down() ) { if( handle_result == 0 ) @@ -4662,8 +4664,6 @@ int TrackCanvas::do_edits(int cursor_x, int cursor_y, int button_press, int drag int result = 0; for(Track *track = mwindow->edl->tracks->first; track && !result; track = track->next) { - if( !track->show_assets() ) continue; - for(Edit *edit = track->edits->first; edit && !result; edit = edit->next) { int64_t edit_x, edit_y, edit_w, edit_h; edit_dimensions(edit, edit_x, edit_y, edit_w, edit_h);