Skip to content

Commit

Permalink
Auto merge of #16800 - Manishearth:border-radius, r=emilio
Browse files Browse the repository at this point in the history
Allow border radii to be set via preshints

Fixes rendering of `<hr>`

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16800)
<!-- Reviewable:end -->
  • Loading branch information
bors-servo committed May 11, 2017
2 parents 15f3db5 + d1c3021 commit 6de4c93
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
6 changes: 6 additions & 0 deletions components/style/values/generics/mod.rs
Expand Up @@ -26,6 +26,12 @@ impl<L> HasViewportPercentage for BorderRadiusSize<L> {
fn has_viewport_percentage(&self) -> bool { false }
}

impl<L: Clone> From<L> for BorderRadiusSize<L> {
fn from(other: L) -> Self {
Self::new(other.clone(), other)
}
}

impl<L> BorderRadiusSize<L> {
#[inline]
/// Create a new `BorderRadiusSize` for an area of given width and height.
Expand Down
19 changes: 9 additions & 10 deletions ports/geckolib/glue.rs
Expand Up @@ -1446,18 +1446,14 @@ pub extern "C" fn Servo_MediaList_DeleteMedium(list: RawServoMediaListBorrowed,
}

macro_rules! get_longhand_from_id {
($id:expr, $retval:expr) => {
($id:expr) => {
match PropertyId::from_nscsspropertyid($id) {
Ok(PropertyId::Longhand(long)) => long,
_ => {
error!("stylo: unknown presentation property with id {:?}", $id);
return $retval
panic!("stylo: unknown presentation property with id {:?}", $id);
}
}
};
($id:expr) => {
get_longhand_from_id!($id, ())
}
}

macro_rules! match_wrap_declared {
Expand All @@ -1467,8 +1463,7 @@ macro_rules! match_wrap_declared {
LonghandId::$property => PropertyDeclaration::$property($inner),
)*
_ => {
error!("stylo: Don't know how to handle presentation property {:?}", $longhand);
return
panic!("stylo: Don't know how to handle presentation property {:?}", $longhand);
}
}
)
Expand All @@ -1480,7 +1475,7 @@ pub extern "C" fn Servo_DeclarationBlock_PropertyIsSet(declarations:
property: nsCSSPropertyID)
-> bool {
use style::properties::PropertyDeclarationId;
let long = get_longhand_from_id!(property, false);
let long = get_longhand_from_id!(property);
read_locked_arc(declarations, |decls: &PropertyDeclarationBlock| {
decls.get(PropertyDeclarationId::Longhand(long)).is_some()
})
Expand Down Expand Up @@ -1575,7 +1570,7 @@ pub extern "C" fn Servo_DeclarationBlock_SetPixelValue(declarations:
use style::properties::{PropertyDeclaration, LonghandId};
use style::properties::longhands::border_spacing::SpecifiedValue as BorderSpacing;
use style::values::specified::BorderWidth;
use style::values::specified::length::NoCalcLength;
use style::values::specified::length::{NoCalcLength, LengthOrPercentage};

let long = get_longhand_from_id!(property);
let nocalc = NoCalcLength::from_px(value);
Expand All @@ -1601,6 +1596,10 @@ pub extern "C" fn Servo_DeclarationBlock_SetPixelValue(declarations:
vertical: None,
}
),
BorderTopLeftRadius => Box::new(LengthOrPercentage::from(nocalc).into()),
BorderTopRightRadius => Box::new(LengthOrPercentage::from(nocalc).into()),
BorderBottomLeftRadius => Box::new(LengthOrPercentage::from(nocalc).into()),
BorderBottomRightRadius => Box::new(LengthOrPercentage::from(nocalc).into()),
};
write_locked_arc(declarations, |decls: &mut PropertyDeclarationBlock| {
decls.push(prop, Importance::Normal);
Expand Down

0 comments on commit 6de4c93

Please sign in to comment.