View Issue Details

IDProjectCategoryView StatusLast Update
0003222ardourfeaturespublic2020-04-19 20:14
Reporterlincoln Assigned Topaul  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Target Version3.0-beta1 
Summary0003222: [PATCH] Additional range expand/shrink mode for scroomer
DescriptionScroomer does not have a nice way to grow/shrink a range whilst keeping the present range centred in the midi view. It would be nice to be able to expand/shrink the range at both ends without having to adjust the upper and lower range handle individually.
TagsNo tags attached.

Activities

2010-06-03 19:24

 

scroomer-pinch-mode.patch (2,152 bytes)   
Index: libs/gtkmm2ext/scroomer.cc
===================================================================
--- libs/gtkmm2ext/scroomer.cc	(revision 7223)
+++ libs/gtkmm2ext/scroomer.cc	(working copy)
@@ -103,17 +103,33 @@
 		unzoomed_val = max(unzoomed_val, adj.get_lower());
 		break;
 	case Handle1:
+
 		unzoomed_page += scale * fract * range;
 		unzoomed_page = min(unzoomed_page, adj.get_upper() - unzoomed_val);
 		unzoomed_page = max(unzoomed_page, min_page_size);
+		
+		if (pinch){
+			temp = unzoomed_val + unzoomed_page;
+			unzoomed_val -= scale * fract * range * 0.5;
+			unzoomed_val = min(unzoomed_val, temp - min_page_size);
+			unzoomed_val = max(unzoomed_val, adj.get_lower());
+		}
+		
 		break;
 	case Handle2:
 		temp = unzoomed_val + unzoomed_page;
 		unzoomed_val += scale * fract * range;
 		unzoomed_val = min(unzoomed_val, temp - min_page_size);
 		unzoomed_val = max(unzoomed_val, adj.get_lower());
-
+		
 		unzoomed_page = temp - unzoomed_val;
+		
+		if (pinch){
+			
+			unzoomed_page -= scale * fract * range;
+		}
+		
+		unzoomed_page = min(unzoomed_page, adj.get_upper() - unzoomed_val);		
 		unzoomed_page = max(unzoomed_page, min_page_size);
 		break;
 	default:
@@ -178,28 +194,18 @@
 		val = unzoomed_val;
 		page = unzoomed_page;
 	}
-
+	
 	adj.set_page_size(page);
+	adj.set_value(val);
+	adj.value_changed();
 	
-	if (val == adj.get_value()) {
-		adj.value_changed();
-	}
-
-	if (val < adj.get_lower()) {
-		adj.value_changed();
-	} else if (val > adj.get_upper()) {
-		adj.value_changed();
-	} else {
-		adj.set_value(val);
-	}
-
 	return true;
 }
 
 bool
 Scroomer::on_button_press_event (GdkEventButton* ev)
 {
-	if (ev->button == 1) {
+	if (ev->button == 1 || ev->button == 3) {
 		Component comp = point_in(ev->y);
 
 		if (comp == Total || comp == None) {
@@ -212,7 +218,13 @@
 		unzoomed_val = adj.get_value();
 		unzoomed_page = adj.get_page_size();
 		grab_window = ev->window;
+		pinch = false;
+		
+		if (ev->button == 3){
+			pinch = true;
+		}
 	}
+	
 	return false;
 }
 
@@ -229,7 +241,7 @@
 		return true;
 	}
 
-	if (ev->button != 1) {
+	if (ev->button != 1 && ev->button != 3) {
 		return true;
 	}
 
scroomer-pinch-mode.patch (2,152 bytes)   

lincoln

2010-06-03 19:25

reporter   ~0008149

Added patch to implement this, right click on the scroomer handles to activate.

2010-06-03 19:30

 

scroomer-pinch-mode-pt2.patch (340 bytes)   
Index: libs/gtkmm2ext/gtkmm2ext/scroomer.h
===================================================================
--- libs/gtkmm2ext/gtkmm2ext/scroomer.h	(revision 7223)
+++ libs/gtkmm2ext/gtkmm2ext/scroomer.h	(working copy)
@@ -81,6 +81,7 @@
 	double grab_y;
 	double unzoomed_val;
 	double unzoomed_page;
+	bool pinch;
 };
 
 } // namespace

lincoln

2010-06-03 19:31

reporter   ~0008150

Added second patch that must be applied with the first patch.

paul

2010-09-16 16:19

administrator   ~0009066

nice idea. applied rev 7786

system

2020-04-19 20:14

developer   ~0022117

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-06-03 19:24 lincoln New Issue
2010-06-03 19:24 lincoln File Added: scroomer-pinch-mode.patch
2010-06-03 19:25 lincoln Note Added: 0008149
2010-06-03 19:30 lincoln File Added: scroomer-pinch-mode-pt2.patch
2010-06-03 19:31 lincoln Note Added: 0008150
2010-07-21 02:28 cth103 cost => 0.00
2010-07-21 02:28 cth103 Target Version => 3.0-beta1
2010-07-21 02:28 cth103 Summary Additional range expand/shrink mode for scroomer => [PATCH] Additional range expand/shrink mode for scroomer
2010-09-16 16:19 paul Note Added: 0009066
2010-09-16 16:19 paul Status new => resolved
2010-09-16 16:19 paul Resolution open => fixed
2010-09-16 16:19 paul Assigned To => paul
2020-04-19 20:14 system Note Added: 0022117
2020-04-19 20:14 system Status resolved => closed