opt: optimize scratchpad animaiton set

This commit is contained in:
DreamMaoMao 2025-09-24 20:17:22 +08:00
parent 54955a54fc
commit 2ca0b39e6b
2 changed files with 6 additions and 2 deletions

View file

@ -891,7 +891,7 @@ void resize(Client *c, struct wlr_box geo, int interact) {
c->animainit_geom = c->geom; c->animainit_geom = c->geom;
} }
if (c->isminied) { if (c->scratchpad_switching_mon) {
c->animainit_geom = c->geom; c->animainit_geom = c->geom;
} }

View file

@ -323,6 +323,7 @@ struct Client {
Client *swallowing, *swallowedby; Client *swallowing, *swallowedby;
bool is_clip_to_hide; bool is_clip_to_hide;
bool drag_to_tile; bool drag_to_tile;
bool scratchpad_switching_mon;
bool fake_no_border; bool fake_no_border;
int nofadein; int nofadein;
int nofadeout; int nofadeout;
@ -990,7 +991,7 @@ bool switch_scratchpad_client_state(Client *c) {
c->is_in_scratchpad) { c->is_in_scratchpad) {
// 保存原始monitor用于尺寸计算 // 保存原始monitor用于尺寸计算
Monitor *oldmon = c->mon; Monitor *oldmon = c->mon;
c->scratchpad_switching_mon = true;
c->mon = selmon; c->mon = selmon;
reset_foreign_tolevel(c); reset_foreign_tolevel(c);
client_update_oldmonname_record(c, selmon); client_update_oldmonname_record(c, selmon);
@ -1009,9 +1010,11 @@ bool switch_scratchpad_client_state(Client *c) {
resize(c, c->float_geom, 0); resize(c, c->float_geom, 0);
arrange(selmon, false); arrange(selmon, false);
focusclient(c, true); focusclient(c, true);
c->scratchpad_switching_mon = false;
return true; return true;
} else { } else {
resize(c, c->float_geom, 0); resize(c, c->float_geom, 0);
c->scratchpad_switching_mon = false;
} }
} }
@ -3375,6 +3378,7 @@ void init_client_properties(Client *c) {
c->scroller_proportion = scroller_default_proportion; c->scroller_proportion = scroller_default_proportion;
c->is_pending_open_animation = true; c->is_pending_open_animation = true;
c->drag_to_tile = false; c->drag_to_tile = false;
c->scratchpad_switching_mon = false;
c->fake_no_border = false; c->fake_no_border = false;
c->focused_opacity = focused_opacity; c->focused_opacity = focused_opacity;
c->unfocused_opacity = unfocused_opacity; c->unfocused_opacity = unfocused_opacity;