From aafa1cc676b6bd4d333f0ff3a09e1effabf979c3 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 26 Apr 2019 22:31:24 +0100 Subject: Make sure at least one position change event is emitted after a timeline drag (with frequent=false), even if lots have been sent with frequent=true. Otherwise the code in the CHNAGE_TYPE_DONE branch of Butler::player_change never gets to seek (since frequent is true, it ignores the signal). Without the seek things go wrong. Believed to fix #1534. --- src/lib/content.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lib/content.cc') diff --git a/src/lib/content.cc b/src/lib/content.cc index ca76b01a6..2ca029d5a 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -211,7 +211,7 @@ Content::signal_change (ChangeType c, int p) } void -Content::set_position (shared_ptr film, DCPTime p) +Content::set_position (shared_ptr film, DCPTime p, bool force_emit) { /* video and audio content can modify its position */ @@ -227,7 +227,7 @@ Content::set_position (shared_ptr film, DCPTime p) { boost::mutex::scoped_lock lm (_mutex); - if (p == _position) { + if (p == _position && !force_emit) { cc.abort (); return; } -- cgit v1.2.3