Loading include/private/ui/RegionHelper.h +9 −6 Original line number Diff line number Diff line Loading @@ -220,18 +220,21 @@ private: } inline void prepare(int inside) { if (inside == SpannerBase::lhs_before_rhs) { SpannerBase::lhs_head = lhs.rects->left + lhs.dx; SpannerBase::lhs_tail = lhs.rects->right + lhs.dx; SpannerBase::rhs_head = rhs.rects->left + rhs.dx; SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; if (inside == SpannerBase::lhs_before_rhs) { SpannerBase::rhs_head = max_value; SpannerBase::rhs_tail = max_value; } else if (inside == SpannerBase::lhs_after_rhs) { SpannerBase::lhs_head = max_value; SpannerBase::lhs_tail = max_value; SpannerBase::rhs_head = rhs.rects->left + rhs.dx; SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; } else { // use both spans SpannerBase::lhs_head = lhs.rects->left + lhs.dx; SpannerBase::lhs_tail = lhs.rects->right + lhs.dx; SpannerBase::rhs_head = rhs.rects->left + rhs.dx; SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; } } Loading libs/ui/tests/region.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -25,10 +25,17 @@ using namespace android; int main() { Region empty; Region reg0( Rect( 0, 0, 100, 100 ) ); Region reg1 = reg0; Region reg2, reg3; Region reg4 = empty | reg1; Region reg5 = reg1 | empty; reg4.dump("reg4"); reg5.dump("reg5"); reg0.dump("reg0"); reg1.dump("reg1"); Loading Loading
include/private/ui/RegionHelper.h +9 −6 Original line number Diff line number Diff line Loading @@ -220,18 +220,21 @@ private: } inline void prepare(int inside) { if (inside == SpannerBase::lhs_before_rhs) { SpannerBase::lhs_head = lhs.rects->left + lhs.dx; SpannerBase::lhs_tail = lhs.rects->right + lhs.dx; SpannerBase::rhs_head = rhs.rects->left + rhs.dx; SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; if (inside == SpannerBase::lhs_before_rhs) { SpannerBase::rhs_head = max_value; SpannerBase::rhs_tail = max_value; } else if (inside == SpannerBase::lhs_after_rhs) { SpannerBase::lhs_head = max_value; SpannerBase::lhs_tail = max_value; SpannerBase::rhs_head = rhs.rects->left + rhs.dx; SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; } else { // use both spans SpannerBase::lhs_head = lhs.rects->left + lhs.dx; SpannerBase::lhs_tail = lhs.rects->right + lhs.dx; SpannerBase::rhs_head = rhs.rects->left + rhs.dx; SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; } } Loading
libs/ui/tests/region.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -25,10 +25,17 @@ using namespace android; int main() { Region empty; Region reg0( Rect( 0, 0, 100, 100 ) ); Region reg1 = reg0; Region reg2, reg3; Region reg4 = empty | reg1; Region reg5 = reg1 | empty; reg4.dump("reg4"); reg5.dump("reg5"); reg0.dump("reg0"); reg1.dump("reg1"); Loading