mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
style: Add a temporary workaround for geckolib animations.
With needs_borrow we will be able to remove this, though we'll have to implement clone_ and borrow_ methods for a bunch of properties.
This commit is contained in:
parent
2faaf952c7
commit
bc4e670c5a
3 changed files with 11 additions and 0 deletions
|
@ -422,6 +422,11 @@ pub fn maybe_start_animations<Impl: SelectorImplExt>(context: &SharedStyleContex
|
||||||
{
|
{
|
||||||
let mut had_animations = false;
|
let mut had_animations = false;
|
||||||
|
|
||||||
|
// FIXME(emilio): Implement animations for geckolib.
|
||||||
|
if !new_style.is_servo() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
let box_style = new_style.as_servo().get_box();
|
let box_style = new_style.as_servo().get_box();
|
||||||
for (i, name) in box_style.animation_name.0.iter().enumerate() {
|
for (i, name) in box_style.animation_name.0.iter().enumerate() {
|
||||||
debug!("maybe_start_animations: name={}", name);
|
debug!("maybe_start_animations: name={}", name);
|
||||||
|
|
|
@ -1259,6 +1259,7 @@ pub trait ComputedValues : Debug + Clone + Send + Sync + 'static {
|
||||||
// yet - panics for non-Servo implementations.
|
// yet - panics for non-Servo implementations.
|
||||||
//
|
//
|
||||||
// Used only for animations. Don't use it in other places.
|
// Used only for animations. Don't use it in other places.
|
||||||
|
fn is_servo(&self) -> bool;
|
||||||
fn as_servo<'a>(&'a self) -> &'a ServoComputedValues;
|
fn as_servo<'a>(&'a self) -> &'a ServoComputedValues;
|
||||||
fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues;
|
fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues;
|
||||||
|
|
||||||
|
@ -1310,7 +1311,11 @@ impl ComputedValues for ServoComputedValues {
|
||||||
type Concrete${style_struct.trait_name} = style_structs::${style_struct.servo_struct_name};
|
type Concrete${style_struct.trait_name} = style_structs::${style_struct.servo_struct_name};
|
||||||
% endfor
|
% endfor
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn is_servo(&self) -> bool { true }
|
||||||
|
#[inline]
|
||||||
fn as_servo<'a>(&'a self) -> &'a ServoComputedValues { self }
|
fn as_servo<'a>(&'a self) -> &'a ServoComputedValues { self }
|
||||||
|
#[inline]
|
||||||
fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues { self }
|
fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues { self }
|
||||||
|
|
||||||
fn new(custom_properties: Option<Arc<::custom_properties::ComputedValuesMap>>,
|
fn new(custom_properties: Option<Arc<::custom_properties::ComputedValuesMap>>,
|
||||||
|
|
|
@ -74,6 +74,7 @@ impl ComputedValues for GeckoComputedValues {
|
||||||
% endfor
|
% endfor
|
||||||
|
|
||||||
// These will go away, and we will never implement them.
|
// These will go away, and we will never implement them.
|
||||||
|
fn is_servo(&self) -> bool { false }
|
||||||
fn as_servo<'a>(&'a self) -> &'a ServoComputedValues { unimplemented!() }
|
fn as_servo<'a>(&'a self) -> &'a ServoComputedValues { unimplemented!() }
|
||||||
fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues { unimplemented!() }
|
fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues { unimplemented!() }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue