mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 07:02:44 +00:00 
			
		
		
		
	LibWeb: Revert changing transform's animation-type to by-computed-value
In the upcoming commits where we properly handle transformation interpolation, it actually becomes easier to change this back to custom, so lets do that since its more correct anyways.
This commit is contained in:
		
							parent
							
								
									55dfeedc46
								
							
						
					
					
						commit
						15942b4262
					
				
					 2 changed files with 28 additions and 21 deletions
				
			
		|  | @ -2231,7 +2231,7 @@ | ||||||
|     ] |     ] | ||||||
|   }, |   }, | ||||||
|   "transform": { |   "transform": { | ||||||
|     "animation-type": "by-computed-value", |     "animation-type": "custom", | ||||||
|     "inherited": false, |     "inherited": false, | ||||||
|     "initial": "none", |     "initial": "none", | ||||||
|     "affects-layout": false, |     "affects-layout": false, | ||||||
|  |  | ||||||
|  | @ -811,24 +811,8 @@ static ErrorOr<NonnullRefPtr<StyleValue const>> interpolate_value(StyleValue con | ||||||
|             Length(interpolate_raw(from_rect.left_edge.raw_value(), to_rect.left_edge.raw_value()), from_rect.left_edge.type()), |             Length(interpolate_raw(from_rect.left_edge.raw_value(), to_rect.left_edge.raw_value()), from_rect.left_edge.type()), | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
|     case StyleValue::Type::Transformation: { |     case StyleValue::Type::Transformation: | ||||||
|         auto& from_transform = from.as_transformation(); |         VERIFY_NOT_REACHED(); | ||||||
|         auto& to_transform = to.as_transformation(); |  | ||||||
|         if (from_transform.transform_function() != to_transform.transform_function()) |  | ||||||
|             return from; |  | ||||||
| 
 |  | ||||||
|         auto from_input_values = from_transform.values(); |  | ||||||
|         auto to_input_values = to_transform.values(); |  | ||||||
|         if (from_input_values.size() != to_input_values.size()) |  | ||||||
|             return from; |  | ||||||
| 
 |  | ||||||
|         StyleValueVector interpolated_values; |  | ||||||
|         interpolated_values.ensure_capacity(from_input_values.size()); |  | ||||||
|         for (size_t i = 0; i < from_input_values.size(); ++i) |  | ||||||
|             interpolated_values.append(TRY(interpolate_value(*from_input_values[i], *to_input_values[i], delta))); |  | ||||||
| 
 |  | ||||||
|         return TransformationStyleValue::create(from_transform.transform_function(), move(interpolated_values)); |  | ||||||
|     } |  | ||||||
|     case StyleValue::Type::ValueList: { |     case StyleValue::Type::ValueList: { | ||||||
|         auto& from_list = from.as_value_list(); |         auto& from_list = from.as_value_list(); | ||||||
|         auto& to_list = to.as_value_list(); |         auto& to_list = to.as_value_list(); | ||||||
|  | @ -861,8 +845,31 @@ static ErrorOr<ValueComparingNonnullRefPtr<StyleValue const>> interpolate_proper | ||||||
|         return interpolate_value(from, to, delta); |         return interpolate_value(from, to, delta); | ||||||
|     case AnimationType::None: |     case AnimationType::None: | ||||||
|         return to; |         return to; | ||||||
|     // FIXME: Handle all custom animatable properties
 |     case AnimationType::Custom: { | ||||||
|     case AnimationType::Custom: |         if (property_id == PropertyID::Transform) { | ||||||
|  |             // Try to optimize same-function interpolation
 | ||||||
|  |             if (from.is_transformation() && to.is_transformation()) { | ||||||
|  |                 auto& from_transform = from.as_transformation(); | ||||||
|  |                 auto& to_transform = to.as_transformation(); | ||||||
|  |                 if (from_transform.transform_function() == to_transform.transform_function()) { | ||||||
|  |                     auto from_input_values = from_transform.values(); | ||||||
|  |                     auto to_input_values = to_transform.values(); | ||||||
|  |                     if (from_input_values.size() == to_input_values.size()) { | ||||||
|  |                         StyleValueVector interpolated_values; | ||||||
|  |                         interpolated_values.ensure_capacity(from_input_values.size()); | ||||||
|  |                         for (size_t i = 0; i < from_input_values.size(); ++i) | ||||||
|  |                             interpolated_values.append(TRY(interpolate_value(element, *from_input_values[i], *to_input_values[i], delta))); | ||||||
|  | 
 | ||||||
|  |                         return TransformationStyleValue::create(from_transform.transform_function(), move(interpolated_values)); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             return from; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         // FIXME: Handle all custom animatable properties
 | ||||||
|  |         [[fallthrough]]; | ||||||
|  |     } | ||||||
|     // FIXME: Handle repeatable-list animatable properties
 |     // FIXME: Handle repeatable-list animatable properties
 | ||||||
|     case AnimationType::RepeatableList: |     case AnimationType::RepeatableList: | ||||||
|     case AnimationType::Discrete: |     case AnimationType::Discrete: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Matthew Olsson
						Matthew Olsson