opt: optimize scratchpad animaiton set
This commit is contained in:
@@ -1012,7 +1012,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -980,7 +981,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);
|
||||||
@@ -999,9 +1000,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3454,6 +3457,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;
|
||||||
|
|||||||
Reference in New Issue
Block a user