servo: Merge #17971 - Always set mBgPos for LineDirection::Vertical (from upsuper:linear-gradient); r=canaltinova

This fixes [bug 1385469](https://bugzilla.mozilla.org/show_bug.cgi?id=1385469).

Source-Repo: https://github.com/servo/servo
Source-Revision: 187254bf26fc9974c65d061a146bbbbfb484fbd3

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 3ac79946382f864940d986c11e184aaf4190c203
This commit is contained in:
Xidorn Quan 2017-08-04 04:31:19 -05:00
Родитель 9679ff0b5a
Коммит 9d92667c39
1 изменённых файлов: 12 добавлений и 8 удалений

Просмотреть файл

@ -229,14 +229,18 @@ impl nsStyleImage {
} }
}, },
LineDirection::Vertical(y) => { LineDirection::Vertical(y) => {
// Y::Bottom (to bottom) is ignored because it is the default value. // Although bottom is the default value, we can not ignore
if y == Y::Top { // it here, because the rendering code of Gecko relies on
unsafe { // this to behave correctly for legacy mode.
(*gecko_gradient).mBgPosX let y = match y {
.set_value(CoordDataValue::Percent(0.5)); Y::Top => 0.0,
(*gecko_gradient).mBgPosY Y::Bottom => 1.0,
.set_value(CoordDataValue::Percent(0.0)); };
} unsafe {
(*gecko_gradient).mBgPosX
.set_value(CoordDataValue::Percent(0.5));
(*gecko_gradient).mBgPosY
.set_value(CoordDataValue::Percent(y));
} }
}, },
LineDirection::Corner(horiz, vert) => { LineDirection::Corner(horiz, vert) => {