tiling: Ease minimize animation and use correct alpha for focus indicator

This commit is contained in:
Victoria Brekenfeld 2024-03-04 13:51:18 +01:00 committed by Victoria Brekenfeld
parent 61a3f5c4c8
commit e5ceb24b63

View file

@ -4707,7 +4707,7 @@ where
if let Some(minimize_geo) = minimize_geo { if let Some(minimize_geo) = minimize_geo {
scaled_geo = Some( scaled_geo = Some(
ease( ease(
Linear, EaseInOutCubic,
EaseRectangle(*original_geo), EaseRectangle(*original_geo),
EaseRectangle(*minimize_geo), EaseRectangle(*minimize_geo),
percentage, percentage,
@ -4784,7 +4784,7 @@ where
geo, geo,
indicator_thickness, indicator_thickness,
output_scale, output_scale,
1.0 - percentage, alpha,
[window_hint.red, window_hint.green, window_hint.blue], [window_hint.red, window_hint.green, window_hint.blue],
), ),
)); ));
@ -5021,13 +5021,16 @@ where
) )
}); });
if let Data::Mapped { let was_minimized = if let Data::Mapped {
minimize_rect: Some(minimize_rect), minimize_rect: Some(minimize_rect),
.. ..
} = &data } = &data
{ {
old_geo = Some((*minimize_rect, (percentage * 2.0).min(1.0))); old_geo = Some((*minimize_rect, (percentage * 2.0).min(1.0)));
} true
} else {
false
};
let (scale, offset) = scaled_geo let (scale, offset) = scaled_geo
.map(|adapted_geo| scale_to_center(original_geo, adapted_geo)) .map(|adapted_geo| scale_to_center(original_geo, adapted_geo))
@ -5051,13 +5054,23 @@ where
.unwrap_or(true) .unwrap_or(true)
}) { }) {
( (
ease( if was_minimized {
Linear, ease(
EaseRectangle(old_geo), EaseInOutCubic,
EaseRectangle(new_geo), EaseRectangle(old_geo),
percentage, EaseRectangle(new_geo),
) percentage,
.unwrap(), )
.unwrap()
} else {
ease(
Linear,
EaseRectangle(old_geo),
EaseRectangle(new_geo),
percentage,
)
.unwrap()
},
alpha, alpha,
old_geo != new_geo, old_geo != new_geo,
) )