diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-04-27 11:46:24 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-04-27 11:46:24 +0100 |
| commit | 565490c24a46d0aa941f75cf2a03b195246008b4 (patch) | |
| tree | 4303c17898119e67b676ed0bb0c043e3a8f1d7f5 | |
| parent | f65afabda0088de3e4ec2e3d2355ba70a29e711e (diff) | |
Fix crazy thinko in Rect::extend() causing subtitles to disappear when they were merged.
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | src/lib/rect.h | 6 | ||||
| -rw-r--r-- | test/rect_test.cc | 12 |
3 files changed, 19 insertions, 3 deletions
@@ -1,3 +1,7 @@ +2018-04-27 Carl Hetherington <cth@carlh.net> + + * Fix obscured subtitles in some cases. + 2018-04-25 Carl Hetherington <cth@carlh.net> * Updated fr_FR translation from Thierry Journet. diff --git a/src/lib/rect.h b/src/lib/rect.h index d0daec437..4851ad007 100644 --- a/src/lib/rect.h +++ b/src/lib/rect.h @@ -91,10 +91,12 @@ public: void extend (Rect<T> const & other) { + T old_x = x; + T old_y = y; x = std::min (x, other.x); y = std::min (y, other.y); - width = std::max (x + width, other.x + other.width) - x; - height = std::max (y + height, other.y + other.height) - y; + width = std::max (old_x + width, other.x + other.width) - x; + height = std::max (old_y + height, other.y + other.height) - y; } Rect<T> extended (T amount) const { diff --git a/test/rect_test.cc b/test/rect_test.cc index 1e3730148..832fdad82 100644 --- a/test/rect_test.cc +++ b/test/rect_test.cc @@ -29,10 +29,20 @@ using boost::optional; -BOOST_AUTO_TEST_CASE (rect_test) +BOOST_AUTO_TEST_CASE (rect_test1) { dcpomatic::Rect<int> a (0, 0, 100, 100); dcpomatic::Rect<int> b (200, 200, 100, 100); optional<dcpomatic::Rect<int> > c = a.intersection (b); BOOST_CHECK (!c); } + +BOOST_AUTO_TEST_CASE (rect_test2) +{ + dcpomatic::Rect<int> a (0, 330, 100, 85); + a.extend (dcpomatic::Rect<int> (50, 235, 100, 85)); + BOOST_CHECK_EQUAL (a.x, 0); + BOOST_CHECK_EQUAL (a.y, 235); + BOOST_CHECK_EQUAL (a.width, 150); + BOOST_CHECK_EQUAL (a.height, 180); +} |
