summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/audio_clock.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 2a2cee60d3..4d75584f98 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -1373,6 +1373,9 @@ AudioClock::on_key_press_event (GdkEventKey* ev)
case GDK_KP_Subtract:
if (_negative_allowed && input_string.empty()) {
edit_is_negative = true;
+ edit_string.replace(0,1,"-");
+ _layout->set_text (edit_string);
+ queue_draw ();
} else {
end_edit_relative (false);
}
@@ -1440,6 +1443,15 @@ AudioClock::on_key_press_event (GdkEventKey* ev)
highlight_length = merge_input_and_edit_string ();
}
+ if (edit_is_negative) {
+ edit_string.replace(0,1,"-");
+ } else {
+ /* TODO think about this case.
+ * The TC will be positive unless the edit is relative.
+ */
+ edit_string.replace(0,1," ");
+ }
+
show_edit_status (highlight_length);
_layout->set_text (edit_string);
queue_draw ();
@@ -1721,7 +1733,7 @@ AudioClock::on_scroll_event (GdkEventScroll *ev)
frames *= 10;
}
- if ((double)current_time() - (double)frames < 0.0) {
+ if (!_negative_allowed && (double)current_time() - (double)frames < 0.0) {
set (0, true);
} else {
set (current_time() - frames, true);