From 2bd9d2d292b48aa0123f67ebda9c6597dbed63ad Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Fri, 20 Mar 2026 23:24:06 +0800 Subject: [PATCH] opt: not apply animationa action when xdg toplevel is initing --- src/animation/client.h | 4 ++++ src/client/client.h | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/animation/client.h b/src/animation/client.h index e94f872a..a5a10434 100644 --- a/src/animation/client.h +++ b/src/animation/client.h @@ -1182,6 +1182,10 @@ bool client_draw_frame(Client *c) { if (!c || !client_surface(c)->mapped) return false; + if (c->animation.running && client_is_initing(c)) { + return true; + } + if (!c->need_output_flush) { return client_apply_focus_opacity(c); } diff --git a/src/client/client.h b/src/client/client.h index 4788e448..708d7cc0 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -491,6 +491,14 @@ static inline bool client_request_maximize(Client *c, void *data) { return c->surface.xdg->toplevel->requested.maximized; } +static inline bool client_is_initing(Client *c) { +#ifdef XWAYLAND + if (client_is_x11(c)) + return false; +#endif + return c->surface.xdg->initial_commit; +} + static inline void client_set_size_bound(Client *c) { struct wlr_xdg_toplevel *toplevel; struct wlr_xdg_toplevel_state state;