mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-11-05 13:29:54 -05:00
opt: avoid infinite loops
This commit is contained in:
parent
013a5393a2
commit
48a8fabae1
1 changed files with 13 additions and 7 deletions
20
src/maomao.c
20
src/maomao.c
|
|
@ -5535,20 +5535,26 @@ void setsel(struct wl_listener *listener, void *data) {
|
|||
wlr_seat_set_selection(seat, event->source, event->serial);
|
||||
}
|
||||
|
||||
// 获取tags中最坐标的tag的tagmask
|
||||
// 获取tags中最前面的tag的tagmask
|
||||
unsigned int get_tags_first_tag(unsigned int source_tags) {
|
||||
unsigned int i, target, tag;
|
||||
unsigned int i, tag;
|
||||
tag = 0;
|
||||
|
||||
if (!source_tags) {
|
||||
return selmon->pertag->curtag;
|
||||
}
|
||||
|
||||
for (i = 0; !(tag & 1) && source_tags != 0; i++) {
|
||||
for (i = 0; !(tag & 1) && source_tags != 0 && i < LENGTH(tags); i++) {
|
||||
tag = source_tags >> i;
|
||||
}
|
||||
target = 1 << (i - 1);
|
||||
return target;
|
||||
|
||||
if (i == 1) {
|
||||
return 1;
|
||||
} else if (i > 9) {
|
||||
return 1 << 8;
|
||||
} else {
|
||||
return 1 << (i - 1);
|
||||
}
|
||||
}
|
||||
|
||||
void show_hide_client(Client *c) {
|
||||
|
|
@ -7085,7 +7091,7 @@ void viewtoright_have_client(const Arg *arg) {
|
|||
return;
|
||||
}
|
||||
|
||||
for (target <<= 1; target & TAGMASK; target <<= 1, n++) {
|
||||
for (target <<= 1; target & TAGMASK && n <= LENGTH(tags); target <<= 1, n++) {
|
||||
wl_list_for_each(c, &clients, link) {
|
||||
if (c->mon == selmon && target & c->tags) {
|
||||
found = 1;
|
||||
|
|
@ -7164,7 +7170,7 @@ void viewtoleft_have_client(const Arg *arg) {
|
|||
return;
|
||||
}
|
||||
|
||||
for (target >>= 1; target > 0; target >>= 1, n++) {
|
||||
for (target >>= 1; target > 0 && n <= LENGTH(tags); target >>= 1, n++) {
|
||||
wl_list_for_each(c, &clients, link) {
|
||||
if (c->mon == selmon && target & c->tags) {
|
||||
found = 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue