@@ -165,7 +165,7 @@ static void apply_leaf_positions(desktop_t *d) {
165165 if (!d || !d -> root )
166166 return ;
167167
168- for ( node_t * n = first_extrema ( d -> root ); n ; n = next_leaf ( n , d -> root ) ) {
168+ FOR_EACH_LEAF ( n , d -> root ) {
169169 if (!n -> client )
170170 continue ;
171171
@@ -202,19 +202,10 @@ static void apply_leaf_positions(desktop_t *d) {
202202 if (n -> client -> border_radius > 0.0f ) {
203203 surface_rounded_t * rounded = client_get_rounded (n -> client );
204204 if (rounded ) {
205- int new_fw = r .width + 2 * (int )bw ;
206- int new_fh = r .height + 2 * (int )bw ;
207- if (new_fw > 0 && new_fh > 0 ) {
208- float scale = n -> client -> toplevel && n -> client -> toplevel -> node &&
209- n -> client -> toplevel -> node -> output ? n -> client -> toplevel -> node -> output -> wlr_output -> scale :
210- 1.0f ;
211- int pfw = (int )((double )new_fw * scale + 0.5 );
212- int pfh = (int )((double )new_fh * scale + 0.5 );
213- if (rounded -> border_shader_buf_w != pfw || rounded -> border_shader_buf_h != pfh ) {
214- rounded -> border_dirty = true;
215- rounded -> corner_mask_dirty = true;
216- }
217- }
205+ rounded_mark_border_size (rounded , r .width , r .height , (int )bw ,
206+ n -> client -> toplevel && n -> client -> toplevel -> node &&
207+ n -> client -> toplevel -> node -> output ?
208+ n -> client -> toplevel -> node -> output -> wlr_output -> scale : 1.0f );
218209 }
219210 }
220211 }
@@ -493,19 +484,8 @@ static void process_cursor_resize(void) {
493484 update_borders (toplevel -> border_tree , toplevel -> border_rects , geo , bw );
494485 update_border_colors (client );
495486 if (client -> border_radius > 0.0f && toplevel -> rounded ) {
496- int new_fw = new_width + 2 * (int )bw ;
497- int new_fh = new_height + 2 * (int )bw ;
498- if (new_fw > 0 && new_fh > 0 ) {
499- float scale = toplevel -> node &&
500- toplevel -> node -> output ? toplevel -> node -> output -> wlr_output -> scale : 1.0f ;
501- int pfw = (int )((double )new_fw * scale + 0.5 );
502- int pfh = (int )((double )new_fh * scale + 0.5 );
503- if (toplevel -> rounded -> border_shader_buf_w != pfw ||
504- toplevel -> rounded -> border_shader_buf_h != pfh ) {
505- toplevel -> rounded -> border_dirty = true;
506- toplevel -> rounded -> corner_mask_dirty = true;
507- }
508- }
487+ rounded_mark_border_size (toplevel -> rounded , new_width , new_height , (int )bw ,
488+ toplevel -> node && toplevel -> node -> output ? toplevel -> node -> output -> wlr_output -> scale : 1.0f );
509489 }
510490 }
511491}
0 commit comments