View Issue Details

IDProjectCategoryView StatusLast Update
0003300ardourbugspublic2020-04-19 20:14
Reporterlincoln Assigned Tocth103  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Target Version3.0-beta1 
Summary0003300: Crash on certain region operations with shift+click and no region selection
DescriptionArdour will crash if you try to trim a region or even adjust the region fade if no region is selected and the operation is initiated as a shift+click. The attached patch fixes this issue.
TagsNo tags attached.

Activities

2010-07-03 19:28

 

modifier_guard_on_mouse_ops.patch (1,916 bytes)   
Index: gtk2_ardour/editor_mouse.cc
===================================================================
--- gtk2_ardour/editor_mouse.cc	(revision 7363)
+++ gtk2_ardour/editor_mouse.cc	(working copy)
@@ -444,7 +444,7 @@
 	if (event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) {
 
 		if ((event->button.state & Keyboard::RelevantModifierKeyMask) && event->button.button != 1) {
-
+  
 			/* almost no selection action on modified button-2 or button-3 events */
 
 			if (item_type != RegionItem && event->button.button != 2) {
@@ -466,9 +466,6 @@
 			selection->clear_tracks ();
 			set_selected_track_as_side_effect (true);
 		}
-		if (_join_object_range_state == JOIN_OBJECT_RANGE_OBJECT && !selection->regions.empty()) {
-			clicked_selection = select_range_around_region (selection->regions.front());
-		}
 			
 		break;
 
@@ -476,10 +473,13 @@
  	case RegionViewName:
         case LeftFrameHandle:
         case RightFrameHandle:
-		if (mouse_mode != MouseRange || internal_editing() || _join_object_range_state == JOIN_OBJECT_RANGE_OBJECT) {
-			set_selected_regionview_from_click (press, op, true);
+		//We are not extending selection here guard aganst modifiers
+		op = Selection::Set;
+		
+		if (mouse_mode != MouseRange || internal_editing() || _join_object_range_state == JOIN_OBJECT_RANGE_OBJECT) {		
+			set_selected_regionview_from_click (press, op, true);	
 		} else if (event->type == GDK_BUTTON_PRESS) {
-			set_selected_track_as_side_effect ();
+			set_selected_track_as_side_effect ();	
 		}
 		break;
 
@@ -488,6 +488,9 @@
 	case FadeInItem:
 	case FadeOutHandleItem:
 	case FadeOutItem:
+		//We are not extending selection here guard aganst modifiers
+		op = Selection::Set;
+		
 		if (mouse_mode != MouseRange || _join_object_range_state == JOIN_OBJECT_RANGE_OBJECT) {
 			set_selected_regionview_from_click (press, op, true);
 		} else if (event->type == GDK_BUTTON_PRESS) {

cth103

2010-07-05 01:54

administrator   ~0008391

Last edited: 2010-07-05 01:55

This should be fixed in SVN 7372; I went a slightly different way which I think is more general.

system

2020-04-19 20:14

developer   ~0022151

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2010-07-03 19:28 lincoln New Issue
2010-07-03 19:28 lincoln File Added: modifier_guard_on_mouse_ops.patch
2010-07-04 11:37 cth103 cost => 0.00
2010-07-04 11:37 cth103 Target Version => 3.0-beta1
2010-07-05 00:31 cth103 Status new => confirmed
2010-07-05 01:54 cth103 Note Added: 0008391
2010-07-05 01:54 cth103 Status confirmed => resolved
2010-07-05 01:54 cth103 Resolution open => fixed
2010-07-05 01:54 cth103 Assigned To => cth103
2010-07-05 01:55 cth103 Note Edited: 0008391
2020-04-19 20:14 system Note Added: 0022151
2020-04-19 20:14 system Status resolved => closed