X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrackcanvas.C;h=a0ba9f27a4c406391329bb31d50d85c5719ef855;hb=b5c58822be78c8820692c916e296a2230bb2b9e2;hp=9f596c26ae7c2cf91457bf561118b902fe72ebfd;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/trackcanvas.C b/cinelerra-5.1/cinelerra/trackcanvas.C index 9f596c26..a0ba9f27 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.C +++ b/cinelerra-5.1/cinelerra/trackcanvas.C @@ -1277,7 +1277,7 @@ void TrackCanvas::draw_highlight_rectangle(int x, int y, int w, int h) h = MIN(h, get_h() + 20); if(w > 0 && h > 0) { - set_color(WHITE); + set_color(mwindow->preferences->highlight_inverse); set_inverse(); //draw_rectangle(x, y, w, h); draw_rectangle(x + 1, y + 1, w - 2, h - 2); @@ -1339,7 +1339,7 @@ void TrackCanvas::draw_highlight_insertion(int x, int y, int w, int h) } w = MIN(w, get_w() + 20); h = MIN(h, get_h() + 20); - set_color(WHITE); + set_color(mwindow->preferences->highlight_inverse); set_inverse(); draw_rectangle(x, y, w, h); draw_rectangle(x + 1, y + 1, w - 2, h - 2); @@ -1854,7 +1854,9 @@ void TrackCanvas::draw_loop_points() void TrackCanvas::draw_brender_range() { - if(mwindow->preferences->use_brender) + if( !mwindow->preferences->use_brender || !mwindow->brender_active ) return; + if( mwindow->edl->session->brender_start >= mwindow->edl->session->brender_end ) return; + if( mwindow->edl->session->brender_end > 0 ) { int64_t x1 = Units::round(mwindow->edl->session->brender_start * mwindow->edl->session->sample_rate / @@ -4656,6 +4658,7 @@ int TrackCanvas::button_press_event() int result = 0; int cursor_x, cursor_y; int new_cursor; + double start_position = mwindow->edl->local_session->get_selectionstart(1); cursor_x = get_cursor_x(); cursor_y = get_cursor_y(); @@ -4674,7 +4677,8 @@ int TrackCanvas::button_press_event() activate(); } - if( get_buttonpress() == LEFT_BUTTON ) { + if( get_buttonpress() == LEFT_BUTTON && + gui->mbuttons->transport->engine->command->command != STOP ) { gui->unlock_window(); gui->mbuttons->transport->handle_transport(STOP, 1, 0, 0); gui->lock_window("TrackCanvas::button_press_event"); @@ -4811,13 +4815,30 @@ int TrackCanvas::button_press_event() gui->flash_canvas(1); } } +// if snapping to selection point + if( gui->ctrl_down() && gui->alt_down() ) { + switch( mwindow->session->current_operation ) { + case DRAG_EDITHANDLE1: + mwindow->session->drag_position = start_position; + mwindow->session->current_operation = NO_OPERATION; + drag_scroll = 0; + end_edithandle_selection(); + break; + case DRAG_PLUGINHANDLE1: + mwindow->session->drag_position = start_position; + mwindow->session->current_operation = NO_OPERATION; + drag_scroll = 0; + end_pluginhandle_selection(); + break; + } + } return result; } int TrackCanvas::start_selection(double position) { int rerender = 0; - position = mwindow->edl->align_to_frame(position, 0); + position = mwindow->edl->align_to_frame(position, 1); // Extend a border