X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Ftrackcanvas.C;h=6a34b7f1d33deff5abd4f5b01ff533358765f743;hb=d079f6253a75cc8cfedbab636ad0bc7f5dc9c5f5;hp=f4dd1916b643c8a6e1f89ec2d193f6b41d128713;hpb=954f0f49f9ae83187c2e4230df5794b5976f608f;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/trackcanvas.C b/cinelerra-5.1/cinelerra/trackcanvas.C index f4dd1916..6a34b7f1 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.C +++ b/cinelerra-5.1/cinelerra/trackcanvas.C @@ -4027,22 +4027,26 @@ int TrackCanvas::cursor_motion_event() position = mwindow->edl->align_to_frame(position, 0); position = MAX(position, 0); + double start = mwindow->edl->local_session->get_selectionstart(1); + double end = mwindow->edl->local_session->get_selectionend(1); if(position < selection_midpoint) { mwindow->edl->local_session->set_selectionend(selection_midpoint); mwindow->edl->local_session->set_selectionstart(position); - // Que the CWindow - gui->unlock_window(); - mwindow->cwindow->update(1, 0, 0, 0, 1); - gui->lock_window("TrackCanvas::cursor_motion_event 1"); - // Update the faders - mwindow->update_plugin_guis(); - gui->update_patchbay(); } else { mwindow->edl->local_session->set_selectionstart(selection_midpoint); mwindow->edl->local_session->set_selectionend(position); - // Don't que the CWindow } + // Que the CWindow + gui->unlock_window(); + int dir = + start != mwindow->edl->local_session->get_selectionstart(1) ? 1 : + end != mwindow->edl->local_session->get_selectionend(1) ? -1 : 0; + mwindow->cwindow->update(dir, 0, 0, 0, 1); + gui->lock_window("TrackCanvas::cursor_motion_event 1"); + // Update the faders + mwindow->update_plugin_guis(); + gui->update_patchbay(); timebar_position = mwindow->edl->local_session->get_selectionend(1); @@ -4822,11 +4826,8 @@ int TrackCanvas::button_press_event() activate(); } - 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"); + if( get_buttonpress() == LEFT_BUTTON ) { + gui->stop_transport("TrackCanvas::button_press_event"); } int update_overlay = 0, update_cursor = 0, rerender = 0;