opt: optimize tag animation init offset

This commit is contained in:
DreamMaoMao 2025-02-06 13:54:35 +08:00
parent f3707fd894
commit 9bd85a8298

88
main.c
View file

@ -1122,9 +1122,9 @@ arrange(Monitor *m,bool want_animation)
if (!c->animation.from_rule && want_animation && m->pertag->prevtag !=0 && m->pertag->curtag !=0) { if (!c->animation.from_rule && want_animation && m->pertag->prevtag !=0 && m->pertag->curtag !=0) {
c->animation.tagining = true; c->animation.tagining = true;
if (m->pertag->curtag > m->pertag->prevtag) { if (m->pertag->curtag > m->pertag->prevtag) {
c->animainit_geom.x = c->geom.x + m->m.width; c->animainit_geom.x = c->geom.x + c->mon->m.width -(c->geom.x -c->mon->m.x);
} else { } else {
c->animainit_geom.x = c->geom.x - m->m.width; c->animainit_geom.x = m->m.x - c->geom.width;
} }
} }
@ -2364,51 +2364,51 @@ void dwl_ipc_output_printstatus_to(DwlIpcOutput *ipc_output) {
focused = focustop(monitor); focused = focustop(monitor);
zdwl_ipc_output_v2_send_active(ipc_output->resource, monitor == selmon); zdwl_ipc_output_v2_send_active(ipc_output->resource, monitor == selmon);
// if ((monitor->tagset[monitor->seltags] & TAGMASK) == TAGMASK) { if ((monitor->tagset[monitor->seltags] & TAGMASK) == TAGMASK) {
// state = 0; state = 0;
// state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_ACTIVE; state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_ACTIVE;
// zdwl_ipc_output_v2_send_tag(ipc_output->resource, 888, state, 1, 1); zdwl_ipc_output_v2_send_tag(ipc_output->resource, 888, state, 1, 1);
// } else { } else {
// for ( tag = 0 ; tag < LENGTH(tags); tag++) { for ( tag = 0 ; tag < LENGTH(tags); tag++) {
// numclients = state = focused_client = 0; numclients = state = focused_client = 0;
// tagmask = 1 << tag; tagmask = 1 << tag;
// if ((tagmask & monitor->tagset[monitor->seltags]) != 0) if ((tagmask & monitor->tagset[monitor->seltags]) != 0)
// state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_ACTIVE; state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_ACTIVE;
// wl_list_for_each(c, &clients, link) { wl_list_for_each(c, &clients, link) {
// if (c->mon != monitor) if (c->mon != monitor)
// continue; continue;
// if (!(c->tags & tagmask)) if (!(c->tags & tagmask))
// continue; continue;
// if (c == focused) if (c == focused)
// focused_client = 1; focused_client = 1;
// if (c->isurgent) if (c->isurgent)
// state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_URGENT; state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_URGENT;
// numclients++; numclients++;
// } }
// zdwl_ipc_output_v2_send_tag(ipc_output->resource, tag, state, numclients, focused_client); zdwl_ipc_output_v2_send_tag(ipc_output->resource, tag, state, numclients, focused_client);
// } }
// } }
for ( tag = 0 ; tag < LENGTH(tags); tag++) { // for ( tag = 0 ; tag < LENGTH(tags); tag++) {
numclients = state = focused_client = 0; // numclients = state = focused_client = 0;
tagmask = 1 << tag; // tagmask = 1 << tag;
if ((tagmask & monitor->tagset[monitor->seltags]) != 0) // if ((tagmask & monitor->tagset[monitor->seltags]) != 0)
state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_ACTIVE; // state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_ACTIVE;
wl_list_for_each(c, &clients, link) { // wl_list_for_each(c, &clients, link) {
if (c->mon != monitor) // if (c->mon != monitor)
continue; // continue;
if (!(c->tags & tagmask)) // if (!(c->tags & tagmask))
continue; // continue;
if (c == focused) // if (c == focused)
focused_client = 1; // focused_client = 1;
if (c->isurgent) // if (c->isurgent)
state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_URGENT; // state |= ZDWL_IPC_OUTPUT_V2_TAG_STATE_URGENT;
numclients++; // numclients++;
} // }
zdwl_ipc_output_v2_send_tag(ipc_output->resource, tag, state, numclients, focused_client); // zdwl_ipc_output_v2_send_tag(ipc_output->resource, tag, state, numclients, focused_client);
} // }
title = focused ? client_get_title(focused) : ""; title = focused ? client_get_title(focused) : "";
appid = focused ? client_get_appid(focused) : ""; appid = focused ? client_get_appid(focused) : "";