feat: add win rule isunglobal

This commit is contained in:
DreamMaoMao 2025-05-15 20:58:10 +08:00
parent 878c36220a
commit b648e2a880
2 changed files with 5 additions and 0 deletions

View file

@ -27,6 +27,7 @@ typedef struct {
const char *animation_type_close; const char *animation_type_close;
int isnoborder; int isnoborder;
int isopensilent; int isopensilent;
int isunglobal;
int isglobal; int isglobal;
int monitor; int monitor;
int offsetx; int offsetx;
@ -1060,6 +1061,7 @@ void parse_config_line(Config *config, const char *line) {
rule->isfullscreen = -1; rule->isfullscreen = -1;
rule->isnoborder = -1; rule->isnoborder = -1;
rule->isopensilent = -1; rule->isopensilent = -1;
rule->isunglobal = -1;
rule->isglobal = -1; rule->isglobal = -1;
rule->isterm = -1; rule->isterm = -1;
rule->noswallow = -1; rule->noswallow = -1;
@ -1119,6 +1121,8 @@ void parse_config_line(Config *config, const char *line) {
rule->isnoborder = atoi(val); rule->isnoborder = atoi(val);
} else if (strcmp(key, "isopensilent") == 0) { } else if (strcmp(key, "isopensilent") == 0) {
rule->isopensilent = atoi(val); rule->isopensilent = atoi(val);
} else if (strcmp(key, "isunglobal") == 0) {
rule->isunglobal = atoi(val);
} else if (strcmp(key, "isglobal") == 0) { } else if (strcmp(key, "isglobal") == 0) {
rule->isglobal = atoi(val); rule->isglobal = atoi(val);
} else if (strcmp(key, "isterm") == 0) { } else if (strcmp(key, "isterm") == 0) {

View file

@ -1832,6 +1832,7 @@ applyrules(Client *c) {
c->isnoborder = r->isnoborder > 0 ? r->isnoborder : c->isnoborder; c->isnoborder = r->isnoborder > 0 ? r->isnoborder : c->isnoborder;
c->isopensilent = r->isopensilent > 0 ? r->isopensilent : c->isopensilent; c->isopensilent = r->isopensilent > 0 ? r->isopensilent : c->isopensilent;
c->isglobal = r->isglobal > 0 ? r->isglobal : c->isglobal; c->isglobal = r->isglobal > 0 ? r->isglobal : c->isglobal;
c->isglobal = r->isunglobal > 0 && (client_is_unmanaged(c) || client_should_ignore_focus(c)) ? r->isunglobal : c->isglobal;
newtags = r->tags > 0 ? r->tags | newtags : newtags; newtags = r->tags > 0 ? r->tags | newtags : newtags;
i = 0; i = 0;
wl_list_for_each(m, &mons, link) if (r->monitor == i++) mon = m; wl_list_for_each(m, &mons, link) if (r->monitor == i++) mon = m;