add descratch plugin, single frame silence insert, docs
[goodguy/history.git] / cinelerra-5.1 / cinelerra / trackcanvas.C
index f4dd1916b643c8a6e1f89ec2d193f6b41d128713..6a34b7f1d33deff5abd4f5b01ff533358765f743 100644 (file)
@@ -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;