diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-04-26 22:31:24 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-04-26 22:31:24 +0100 |
| commit | aafa1cc676b6bd4d333f0ff3a09e1effabf979c3 (patch) | |
| tree | 52bd25097ea5131338c0b3c62a37dffa265cea2b /src/lib | |
| parent | e7e7035f800accbb09ac99aa26d15bff22588d0b (diff) | |
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.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/content.cc | 4 | ||||
| -rw-r--r-- | src/lib/content.h | 2 |
2 files changed, 3 insertions, 3 deletions
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<const Film> film, DCPTime p) +Content::set_position (shared_ptr<const Film> film, DCPTime p, bool force_emit) { /* video and audio content can modify its position */ @@ -227,7 +227,7 @@ Content::set_position (shared_ptr<const Film> film, DCPTime p) { boost::mutex::scoped_lock lm (_mutex); - if (p == _position) { + if (p == _position && !force_emit) { cc.abort (); return; } diff --git a/src/lib/content.h b/src/lib/content.h index 96359fadb..4c1d55765 100644 --- a/src/lib/content.h +++ b/src/lib/content.h @@ -135,7 +135,7 @@ public: return _digest; } - void set_position (boost::shared_ptr<const Film> film, DCPTime); + void set_position (boost::shared_ptr<const Film> film, DCPTime, bool force_emit = false); /** DCPTime that this content starts; i.e. the time that the first * bit of the content (trimmed or not) will happen. |
