opt: optimize layer animation action set

This commit is contained in:
DreamMaoMao 2025-07-13 12:46:26 +08:00
parent c6635d73a9
commit 608aa7f7a2
2 changed files with 3 additions and 3 deletions

View file

@ -465,7 +465,7 @@ void layer_set_pending_state(LayerSurface *l) {
l->pending = l->geom;
if (l->animation.action == OPEN) {
if (l->animation.action == OPEN && !l->animation.running) {
if ((!l->animation_type_open &&
strcmp(layer_animation_type_open, "zoom") == 0) ||
@ -510,8 +510,6 @@ void layer_set_pending_state(LayerSurface *l) {
l->animation.should_animate = false;
}
l->animation.duration = animation_duration_open;
l->animation.action = OPEN;
// 开始动画
layer_commit(l);
l->dirty = true;

View file

@ -2556,6 +2556,7 @@ void maplayersurfacenotify(struct wl_listener *listener, void *data) {
// 初始化动画
if (animations && layer_animations && !l->noanim) {
l->animation.duration = animation_duration_open;
l->animation.action = OPEN;
layer_set_pending_state(l);
}
@ -2605,6 +2606,7 @@ void commitlayersurfacenotify(struct wl_listener *listener, void *data) {
l->geom.width = box.width;
l->geom.height = box.height;
l->animation.action = MOVE;
l->animation.duration = animation_duration_move;
l->need_output_flush = true;
layer_set_pending_state(l);
}