From: Carl Hetherington Date: Fri, 27 Apr 2018 10:46:24 +0000 (+0100) Subject: Fix crazy thinko in Rect::extend() causing subtitles to disappear when they were... X-Git-Tag: v2.12.10~1 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=8ef185edbbf07435603009bc9b5bc56924cf02ca Fix crazy thinko in Rect::extend() causing subtitles to disappear when they were merged. From 565490c in master. --- diff --git a/ChangeLog b/ChangeLog index 0d56401ba..724cea2db 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ -2018-08-14 Carl Hetherington +2018-04-27 Carl Hetherington + + * Fix obscured subtitles in some cases. + +2018-04-25 Carl Hetherington * Version 2.12.9 released. 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 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 extended (T amount) const { diff --git a/test/data b/test/data index e5472ceee..87b0b0e75 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit e5472ceee4b68737cdf10157c6a5d2018c98e66d +Subproject commit 87b0b0e75c9af32e011ac7626f18fc42018d5803 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 a (0, 0, 100, 100); dcpomatic::Rect b (200, 200, 100, 100); optional > c = a.intersection (b); BOOST_CHECK (!c); } + +BOOST_AUTO_TEST_CASE (rect_test2) +{ + dcpomatic::Rect a (0, 330, 100, 85); + a.extend (dcpomatic::Rect (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); +}