mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
opt: optimize tagin tagout animaiton
This commit is contained in:
parent
1e9a6cab84
commit
4ae9ff3ac8
2 changed files with 7 additions and 26 deletions
|
|
@ -232,8 +232,7 @@ void buffer_set_effect(Client *c, BufferData data) {
|
|||
if (!c || c->iskilling)
|
||||
return;
|
||||
|
||||
if (c->animation.tagouting || c->animation.tagouted ||
|
||||
c->animation.tagining) {
|
||||
if (c->animation.tagouting || c->animation.tagining) {
|
||||
data.should_scale = false;
|
||||
}
|
||||
|
||||
|
|
@ -442,8 +441,7 @@ struct ivec2 clip_to_hide(Client *c, struct wlr_box *clip_box) {
|
|||
int offsetx = 0, offsety = 0, offsetw = 0, offseth = 0;
|
||||
struct ivec2 offset = {0, 0, 0, 0};
|
||||
|
||||
if (!ISTILED(c) && !c->animation.tagining && !c->animation.tagouted &&
|
||||
!c->animation.tagouting)
|
||||
if (!ISTILED(c) && !c->animation.tagining && !c->animation.tagouting)
|
||||
return offset;
|
||||
|
||||
int bottom_out_offset =
|
||||
|
|
@ -463,8 +461,7 @@ struct ivec2 clip_to_hide(Client *c, struct wlr_box *clip_box) {
|
|||
需要主要border超出屏幕的时候不计算如偏差之内而是
|
||||
要等窗口表面超出才开始计算偏差
|
||||
*/
|
||||
if (ISTILED(c) || c->animation.tagining || c->animation.tagouted ||
|
||||
c->animation.tagouting) {
|
||||
if (ISTILED(c) || c->animation.tagining || c->animation.tagouting) {
|
||||
if (left_out_offset > 0) {
|
||||
offsetx = GEZERO(left_out_offset - bw);
|
||||
clip_box->x = clip_box->x + offsetx;
|
||||
|
|
@ -736,7 +733,6 @@ void client_animation_next_tick(Client *c) {
|
|||
c->animation.tagouting = false;
|
||||
wlr_scene_node_set_enabled(&c->scene->node, false);
|
||||
client_set_suspended(c, true);
|
||||
c->animation.tagouted = true;
|
||||
c->animation.current = c->geom;
|
||||
}
|
||||
|
||||
|
|
|
|||
23
src/mango.c
23
src/mango.c
|
|
@ -217,7 +217,6 @@ struct dwl_animation {
|
|||
bool should_animate;
|
||||
bool running;
|
||||
bool tagining;
|
||||
bool tagouted;
|
||||
bool tagouting;
|
||||
bool begin_fade_in;
|
||||
bool tag_from_rule;
|
||||
|
|
@ -1265,14 +1264,6 @@ void applyrules(Client *c) {
|
|||
void set_tagin_animation(Monitor *m, Client *c) {
|
||||
c->animation.tagining = true;
|
||||
|
||||
if (c->animation.running) {
|
||||
// if animaiton is running,
|
||||
// use running animation position as init position
|
||||
c->animainit_geom.x = c->animation.current.x;
|
||||
c->animainit_geom.y = c->animation.current.y;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m->pertag->curtag > m->pertag->prevtag) {
|
||||
// goto next tag animation
|
||||
|
||||
|
|
@ -1323,7 +1314,6 @@ void set_arrange_visible(Monitor *m, Client *c, bool want_animation) {
|
|||
|
||||
c->animation.tag_from_rule = false;
|
||||
c->animation.tagouting = false;
|
||||
c->animation.tagouted = false;
|
||||
resize(c, c->geom, 0);
|
||||
}
|
||||
|
||||
|
|
@ -1361,10 +1351,7 @@ void set_arrange_unvisible(Monitor *m, Client *c, bool want_animation) {
|
|||
// should apply tag animation
|
||||
set_tagout_animation(m, c);
|
||||
} else {
|
||||
// should not apply tag animation
|
||||
c->animation.tagouting = false;
|
||||
c->animation.tagining = false;
|
||||
c->animation.tagouted = false;
|
||||
|
||||
wlr_scene_node_set_enabled(&c->scene->node, false);
|
||||
client_set_suspended(c, true);
|
||||
}
|
||||
|
|
@ -1400,8 +1387,8 @@ arrange(Monitor *m, bool want_animation) {
|
|||
}
|
||||
}
|
||||
|
||||
if (c->mon == m && c->ismaxmizescreen && !c->animation.tagouted &&
|
||||
!c->animation.tagouting && VISIBLEON(c, m)) {
|
||||
if (c->mon == m && c->ismaxmizescreen && !c->animation.tagouting &&
|
||||
VISIBLEON(c, m)) {
|
||||
reset_maxmizescreen_size(c);
|
||||
}
|
||||
}
|
||||
|
|
@ -2320,8 +2307,7 @@ void commitnotify(struct wl_listener *listener, void *data) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!c || c->iskilling || c->animation.tagouting || c->animation.tagouted ||
|
||||
c->animation.tagining)
|
||||
if (!c || c->iskilling || c->animation.tagouting || c->animation.tagining)
|
||||
return;
|
||||
|
||||
if (c->configure_serial &&
|
||||
|
|
@ -4964,7 +4950,6 @@ void overview_backup(Client *c) {
|
|||
c->overview_ismaxmizescreenbak = c->ismaxmizescreen;
|
||||
c->overview_isfullscreenbak = c->isfullscreen;
|
||||
c->animation.tagining = false;
|
||||
c->animation.tagouted = false;
|
||||
c->animation.tagouting = false;
|
||||
c->overview_backup_geom = c->geom;
|
||||
c->overview_backup_bw = c->bw;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue