- if (smart_mode_action->get_active()) {
- /* not sure what to do here */
- if (mouse_mode == MouseObject) {
- } else {
- }
- } else {
- switch (mouse_mode) {
- case MouseRange:
- selection->clear_objects ();
- selection->ClearMidiNoteSelection(); //signal
- break;
- case MouseObject:
- selection->clear_objects ();
- selection->clear_time ();
- selection->clear_tracks ();
- selection->ClearMidiNoteSelection(); //signal
- break;
- case MouseContent:
- case MouseDraw:
- //if we go into internal editing, clear everything in the outside world
- selection->clear_objects ();
- selection->clear_time ();
- selection->clear_tracks ();
- break;
- default:
- //clear everything
- selection->clear_objects ();
- selection->clear_time ();
- selection->clear_tracks ();
- break;
- }
+ switch (mouse_mode) {
+ case MouseRange:
+ selection->clear_objects ();
+ selection->ClearMidiNoteSelection (); /* EMIT SIGNAL */
+ break;
+ case MouseObject:
+ selection->clear_time ();
+ selection->clear_tracks ();
+ selection->ClearMidiNoteSelection (); /* EMIT SIGNAL */
+ break;
+ case MouseDraw:
+ /* Clear regions, but not time or tracks, since that
+ would destroy the range selection rectangle, which we need to stick
+ around for AutomationRangeDrag. */
+ selection->clear_regions ();
+ selection->clear_playlists ();
+ break;
+ case MouseContent:
+ /* This handles internal edit.
+ Clear everything except points and notes.
+ */
+ selection->clear_regions();
+ selection->clear_lines();
+ selection->clear_playlists ();
+
+ selection->clear_time ();
+ selection->clear_tracks ();
+ break;
+
+ case MouseTimeFX:
+ /* We probably want to keep region selection */
+ selection->clear_points ();
+ selection->clear_lines();
+ selection->clear_playlists ();
+
+ selection->clear_time ();
+ selection->clear_tracks ();
+ break;
+
+ case MouseAudition:
+ /*Don't lose lines or points if no action in this mode */
+ selection->clear_regions ();
+ selection->clear_playlists ();
+ selection->clear_time ();
+ selection->clear_tracks ();
+ break;
+
+ default:
+ /*Clear everything */
+ selection->clear_objects();
+ selection->clear_time ();
+ selection->clear_tracks ();
+ break;