View Issue Details

IDProjectCategoryView StatusLast Update
0005298ardourbugspublic2015-09-18 15:29
Reportercolinf Assigned Tocolinf  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Summary0005298: <Shift>+<Tab> to rename previous track not working
Description<Shift>+<Tab> when renaming a track used to jump back to allow renaming of the previous track. This doesn't work any more: it jumps forward to the next trreack, just as if shift hadn't been pressed.
TagsNo tags attached.

Activities

paul

2013-01-23 16:20

administrator   ~0014577

semi-intentional (i.e. lazy) :)

who the hell wants to go backwards?

colinf

2013-01-23 16:45

updater   ~0014578

:)

I do, if I mistype a track name but don't spot it until I've tabbed to the next one...

2013-01-23 16:45

 

shift-tab-renames-previous-track.patch (2,011 bytes)   
Index: gtk2_ardour/time_axis_view.cc
===================================================================
--- gtk2_ardour/time_axis_view.cc	(revision 13974)
+++ gtk2_ardour/time_axis_view.cc	(working copy)
@ -578,6 +579,8 @@
 	 * ev->state.
 	 */
 	case GDK_ISO_Left_Tab:
+		end_name_edit (RESPONSE_ACCEPT, true);
+		return true;
 	case GDK_Tab:
 		end_name_edit (RESPONSE_ACCEPT);
 		return true;
@@ -611,7 +614,7 @@
 		name_entry->signal_key_release_event().connect (sigc::mem_fun (*this, &TimeAxisView::name_entry_key_release), false);
 		name_entry->signal_focus_out_event().connect (sigc::mem_fun (*this, &TimeAxisView::name_entry_focus_out));
 		name_entry->set_text (name_label.get_text());
-		name_entry->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &TimeAxisView::end_name_edit), RESPONSE_OK));
+		name_entry->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &TimeAxisView::end_name_edit), RESPONSE_OK, false));
 
 		if (name_label.is_ancestor (name_hbox)) {
 			name_hbox.remove (name_label);
@@ -628,7 +631,7 @@
 }
 
 void
-TimeAxisView::end_name_edit (int response)
+TimeAxisView::end_name_edit (int response, bool reverse)
 {
 	if (!name_entry) {
 		return;
@@ -669,8 +672,15 @@
 		if (i != allviews.end()) {
 			
 			do {
-				if (++i == allviews.end()) {
-					return;
+				if (reverse) {
+					if (i-- == allviews.begin()) {
+						i = allviews.end();
+						i--;
+					}
+				} else {
+					if (++i == allviews.end()) {
+						i = allviews.begin();
+					}
 				}
 				
 				RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*>(*i);
Index: gtk2_ardour/time_axis_view.h
===================================================================
--- gtk2_ardour/time_axis_view.h	(revision 13974)
+++ gtk2_ardour/time_axis_view.h	(working copy)
@@ -228,7 +228,7 @@
 
         Gtk::Entry* name_entry;
         void begin_name_edit ();
-        void end_name_edit (int);
+        void end_name_edit (int, bool reverse=false);
 
 	/* derived classes can override these */
 

colinf

2013-01-23 16:51

updater   ~0014579

Well, since I'm so lazy I hate having to reach for my mouse to jump back a track when I make a typo, here's a fix. It also makes tabbing off the last track jump back to the first, & vice-versa: I don't know whether that's an improvement, but it makes sense to me.

Does that look OK to you?

paul

2013-01-23 20:33

administrator   ~0014582

implemented it myself, now in svn rev 13982

colinf

2013-01-24 10:35

updater   ~0014585

Thanks for indulging me, that makes more sense than my effort.

Do you think the 'wrap-around' between last & first is worth doing, or do you think it's a bad idea?

paul

2013-01-24 12:32

administrator   ~0014588

i normally like wraparound but in this case i think it is probably a bad idea.

colinf

2013-01-24 16:47

updater   ~0014593

This is working again now.

colinf

2015-09-18 15:29

updater   ~0017319

Closing old issues reported by me: these have long since been fixed.

Issue History

Date Modified Username Field Change
2013-01-22 18:42 colinf New Issue
2013-01-23 16:20 paul Note Added: 0014577
2013-01-23 16:45 colinf Note Added: 0014578
2013-01-23 16:45 colinf File Added: shift-tab-renames-previous-track.patch
2013-01-23 16:51 colinf Note Added: 0014579
2013-01-23 20:33 paul Note Added: 0014582
2013-01-23 20:33 paul Status new => feedback
2013-01-24 10:35 colinf Note Added: 0014585
2013-01-24 12:32 paul Note Added: 0014588
2013-01-24 16:47 colinf Note Added: 0014593
2013-01-24 16:47 colinf Status feedback => resolved
2013-01-24 16:47 colinf Resolution open => fixed
2013-01-24 16:47 colinf Assigned To => colinf
2015-09-18 15:29 colinf Note Added: 0017319
2015-09-18 15:29 colinf Status resolved => closed