feat: support tagrule option no_render_border

This commit is contained in:
DreamMaoMao 2025-05-05 15:11:49 +08:00
parent f115f87241
commit aa5468d44d
2 changed files with 92 additions and 20 deletions

View file

@ -1054,7 +1054,7 @@ void set_rect_size(struct wlr_scene_rect *rect, int width, int height) {
void apply_border(Client *c, struct wlr_box clip_box, int offsetx,
int offsety) {
int i;
if (c->iskilling || !client_surface(c)->mapped)
return;
@ -1066,6 +1066,16 @@ void apply_border(Client *c, struct wlr_box clip_box, int offsetx,
return;
}
for(i=0;i< config.tag_rules_count;i++) {
if(c->tags & (1 << (config.tag_rules[i].id - 1)) && config.tag_rules[i].no_render_border) {
set_rect_size(c->border[0], 0, 0);
set_rect_size(c->border[1], 0, 0);
set_rect_size(c->border[2], 0, 0);
set_rect_size(c->border[3], 0, 0);
return;
}
}
wlr_scene_node_set_position(&c->scene_surface->node, c->bw, c->bw);
set_rect_size(c->border[0], clip_box.width, c->bw);
set_rect_size(c->border[1], clip_box.width, c->bw);
@ -3105,9 +3115,9 @@ void createmon(struct wl_listener *listener, void *data) {
m->pertag->smfacts[i] = default_smfact;
m->pertag->ltidxs[i] = m->lt;
if (i > 0 && strlen(config.tags[i - 1].layout_name) > 0) {
if (i > 0 && strlen(config.tag_rules[i - 1].layout_name) > 0) {
for (jk = 0; jk < LENGTH(layouts); jk++) {
if (strcmp(layouts[jk].name, config.tags[i - 1].layout_name) == 0) {
if (strcmp(layouts[jk].name, config.tag_rules[i - 1].layout_name) == 0) {
m->pertag->ltidxs[i] = &layouts[jk];
}
}