mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
opt: optimize slide animaiton dir judge
This commit is contained in:
parent
d64e654c2d
commit
d32dde4d98
1 changed files with 26 additions and 13 deletions
|
|
@ -28,23 +28,36 @@ enum corner_location set_client_corner_location(Client *c) {
|
|||
return current_corner_location;
|
||||
}
|
||||
|
||||
int is_special_animaiton_rule(Client *c) {
|
||||
int visible_client_number = 0;
|
||||
Client *count_c;
|
||||
wl_list_for_each(count_c, &clients, link) {
|
||||
if (count_c && VISIBLEON(count_c, selmon) && !count_c->isminied &&
|
||||
!count_c->iskilling && !count_c->isfloating) {
|
||||
visible_client_number++;
|
||||
}
|
||||
}
|
||||
bool is_horizontal_stack_layout(Monitor *m) {
|
||||
|
||||
if (is_scroller_layout(selmon) && !c->isfloating) {
|
||||
if (!m->pertag->curtag &&
|
||||
(strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "tile") == 0 ||
|
||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "spiral") == 0 ||
|
||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "dwindle") == 0 ||
|
||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "deck") == 0))
|
||||
return true;
|
||||
|
||||
if (m->pertag->curtag &&
|
||||
(strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "tile") == 0 ||
|
||||
strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "spiral") == 0 ||
|
||||
strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "dwindle") == 0 ||
|
||||
strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "deck") == 0))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int is_special_animaiton_rule(Client *c) {
|
||||
|
||||
if (is_scroller_layout(c->mon) && !c->isfloating) {
|
||||
return DOWN;
|
||||
} else if (visible_client_number < 2 && !c->isfloating) {
|
||||
} else if (c->mon->visible_tiling_clients == 1 && !c->isfloating) {
|
||||
return DOWN;
|
||||
} else if (visible_client_number == 2 && !c->isfloating && !new_is_master) {
|
||||
} else if (c->mon->visible_tiling_clients == 2 && !c->isfloating &&
|
||||
!new_is_master && is_horizontal_stack_layout(c->mon)) {
|
||||
return RIGHT;
|
||||
} else if (!c->isfloating && new_is_master) {
|
||||
} else if (!c->isfloating && new_is_master &&
|
||||
is_horizontal_stack_layout(c->mon)) {
|
||||
return LEFT;
|
||||
} else {
|
||||
return UNDIR;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue