View Issue Details

IDCategoryLast Update
0007268bugs2018-04-12 00:59
ReportertimbyrAssigned Tox42 
Reproducibilityalways 
Status feedbackResolutionopen 
Product Version5.12 
Fixed in Version 
Summary0007268: Tooltips aren't displayed during playback
DescriptionWith the transport rolling tooltips are not displayed when hoving over widgets.

Expected behaviour:

Tooltips are always displayed when hovering over a widget.
TagsNo tags attached.

Relationships

has duplicate 0007559 closed Tooltips are only shown, when playback is stopped 

Activities

x42

2018-04-11 23:52

administrator   ~0020254

Some info from IRC:
"tooltips don't show for me while transport is moving in 5.11.0 or 5.12.0, but they do show in 4.6.0."

The oldest version I have installed is 5.5.0 and that already has the issue.

x42

2018-04-12 00:55

administrator   ~0020255

Last edited: 2018-04-12 00:59

View 2 revisions

Fixed in 6.0-pre0-668-g4983eb565 -- please test.

Edit: More work to clean this up may be needed. in particular AudioClock::set()
should not regularly call set_tooltip() in the first place.

Alas, moving this to set_mode() does not properly set up the tooltips on session-load, I'll attach the diff here to simplify further investigation.

x42

2018-04-12 00:59

administrator  

attempted-clock-tooltip-fix__only-works-after-change-not-on-load.diff (3,170 bytes)
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 6a7733ae5..6f889adfe 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -877,8 +877,6 @@ AudioClock::set (samplepos_t when, bool force, samplecnt_t offset)
 #endif
 	}
 
-	bool btn_en = false;
-
 	if (!editing) {
 
 		switch (_mode) {
@@ -888,7 +886,6 @@ AudioClock::set (samplepos_t when, bool force, samplecnt_t offset)
 
 		case BBT:
 			set_bbt (when, offset, force);
-			btn_en = true;
 			break;
 
 		case MinSec:
@@ -905,28 +902,6 @@ AudioClock::set (samplepos_t when, bool force, samplecnt_t offset)
 		}
 	}
 
-	if (_with_info) {
-		_left_btn.set_sensitive (btn_en);
-		_right_btn.set_sensitive (btn_en);
-		_left_btn.set_visual_state (Gtkmm2ext::NoVisualState);
-		_right_btn.set_visual_state (Gtkmm2ext::NoVisualState);
-		if (btn_en) {
-			_left_btn.set_elements (ArdourButton::Element(ArdourButton::Edge|ArdourButton::Body|ArdourButton::Text));
-			_right_btn.set_elements (ArdourButton::Element(ArdourButton::Edge|ArdourButton::Body|ArdourButton::Text));
-			_left_btn.set_alignment (.5, .5);
-			_right_btn.set_alignment (.5, .5);
-			set_tooltip (_left_btn, _("Change current tempo"));
-			set_tooltip (_right_btn, _("Change current time signature"));
-		} else {
-			_left_btn.set_elements (ArdourButton::Text);
-			_right_btn.set_elements (ArdourButton::Text);
-			_left_btn.set_alignment (0, .5);
-			_right_btn.set_alignment (1, .5);
-			set_tooltip (_left_btn, _(""));
-			set_tooltip (_right_btn, _(""));
-		}
-	}
-
 	queue_draw ();
 	last_when = when;
 }
@@ -2191,6 +2166,8 @@ AudioClock::set_mode (Mode m, bool noemit)
 	Gtk::Requisition req;
 	set_clock_dimensions (req);
 
+	bool btn_en = false;
+
 	switch (_mode) {
 	case Timecode:
 		insert_map.push_back (11);
@@ -2213,6 +2190,7 @@ AudioClock::set_mode (Mode m, bool noemit)
 		insert_map.push_back (3);
 		insert_map.push_back (2);
 		insert_map.push_back (1);
+		btn_en = true;
 		break;
 
 	case MinSec:
@@ -2246,6 +2224,30 @@ AudioClock::set_mode (Mode m, bool noemit)
 
 	AudioClock::set (last_when, true);
 
+	if (_with_info) {
+		_left_btn.set_sensitive (btn_en);
+		_right_btn.set_sensitive (btn_en);
+		_left_btn.set_visual_state (Gtkmm2ext::NoVisualState);
+		_right_btn.set_visual_state (Gtkmm2ext::NoVisualState);
+		if (btn_en) {
+			_left_btn.set_elements (ArdourButton::Element(ArdourButton::Edge|ArdourButton::Body|ArdourButton::Text));
+			_right_btn.set_elements (ArdourButton::Element(ArdourButton::Edge|ArdourButton::Body|ArdourButton::Text));
+			_left_btn.set_alignment (.5, .5);
+			_right_btn.set_alignment (.5, .5);
+			printf ("set_tooltip..\n");
+			set_tooltip (_left_btn, _("Change current tempo"));
+			set_tooltip (_right_btn, _("Change current time signature"));
+		} else {
+			_left_btn.set_elements (ArdourButton::Text);
+			_right_btn.set_elements (ArdourButton::Text);
+			_left_btn.set_alignment (0, .5);
+			_right_btn.set_alignment (1, .5);
+			printf ("unset_tooltip..\n");
+			set_tooltip (_left_btn, _(""));
+			set_tooltip (_right_btn, _(""));
+		}
+	}
+
 	if (!is_transient && !noemit) {
 		ModeChanged (); /* EMIT SIGNAL (the static one)*/
 	}

Issue History

Date Modified Username Field Change
2017-03-05 11:26 timbyr New Issue
2018-02-14 06:31 timbyr Relationship added has duplicate 0007559
2018-02-14 06:34 timbyr Status new => confirmed
2018-02-14 06:34 timbyr Product Version 5.8 => 5.12
2018-04-11 23:52 x42 Note Added: 0020254
2018-04-12 00:55 x42 Note Added: 0020255
2018-04-12 00:55 x42 Assigned To => x42
2018-04-12 00:55 x42 Status confirmed => feedback
2018-04-12 00:59 x42 Note Edited: 0020255 View Revisions
2018-04-12 00:59 x42 File Added: attempted-clock-tooltip-fix__only-works-after-change-not-on-load.diff