opt: optimize code struct

This commit is contained in:
DreamMaoMao 2025-07-31 21:43:50 +08:00
parent 5f26ad6f13
commit aa85026da7

View file

@ -1213,9 +1213,6 @@ void applyrules(Client *c) {
wlr_scene_node_reparent(&selmon->sel->scene->node, layers[LyrOverlay]); wlr_scene_node_reparent(&selmon->sel->scene->node, layers[LyrOverlay]);
wlr_scene_node_raise_to_top(&selmon->sel->scene->node); wlr_scene_node_raise_to_top(&selmon->sel->scene->node);
} }
// update border color
setborder_color(c);
} }
void // 17 void // 17
@ -3302,7 +3299,7 @@ mapnotify(struct wl_listener *listener, void *data) {
return; return;
} }
// border // extra node
c->border = wlr_scene_rect_create(c->scene, 0, 0, c->border = wlr_scene_rect_create(c->scene, 0, 0,
c->isurgent ? urgentcolor : bordercolor); c->isurgent ? urgentcolor : bordercolor);
wlr_scene_node_lower_to_bottom(&c->border->node); wlr_scene_node_lower_to_bottom(&c->border->node);
@ -3311,6 +3308,12 @@ mapnotify(struct wl_listener *listener, void *data) {
border_radius_location_default); border_radius_location_default);
wlr_scene_node_set_enabled(&c->border->node, true); wlr_scene_node_set_enabled(&c->border->node, true);
c->shadow = wlr_scene_shadow_create(c->scene, 0, 0, border_radius,
shadows_blur, shadowscolor);
wlr_scene_node_lower_to_bottom(&c->shadow->node);
wlr_scene_node_set_enabled(&c->shadow->node, true);
/* Initialize client geometry with room for border */ /* Initialize client geometry with room for border */
client_set_tiled(c, WLR_EDGE_TOP | WLR_EDGE_BOTTOM | WLR_EDGE_LEFT | client_set_tiled(c, WLR_EDGE_TOP | WLR_EDGE_BOTTOM | WLR_EDGE_LEFT |
WLR_EDGE_RIGHT); WLR_EDGE_RIGHT);
@ -3339,16 +3342,13 @@ mapnotify(struct wl_listener *listener, void *data) {
applyrules(c); applyrules(c);
} }
// effects // apply buffer effects of client
c->shadow = wlr_scene_shadow_create(c->scene, 0, 0, border_radius,
shadows_blur, shadowscolor);
wlr_scene_node_lower_to_bottom(&c->shadow->node);
wlr_scene_node_set_enabled(&c->shadow->node, true);
wlr_scene_node_for_each_buffer(&c->scene_surface->node, wlr_scene_node_for_each_buffer(&c->scene_surface->node,
iter_xdg_scene_buffers, c); iter_xdg_scene_buffers, c);
// set border color
setborder_color(c);
// make sure the animation is open type // make sure the animation is open type
c->is_pending_open_animation = true; c->is_pending_open_animation = true;
resize(c, c->geom, 0); resize(c, c->geom, 0);