Commit da901a2
committed
Fix negative dimensions in scene rect sizing
During cross-output tiling drags, computed box dimensions can become
negative due to coordinate transforms and thickness subtractions. This
triggers the assertion in wlr_scene_rect_set_size() which requires
width >= 0 && height >= 0, crashing the compositor.
Clamp dimensions to zero in three locations:
- resize_box() in seatop_move_tiling.c for the WLR_EDGE_NONE case
- update_indicator() in seatop_move_tiling.c as a safety net
- arrange_container() in transaction.c for border width (matching the
existing vert_border_height clamping from 62fd8c4)
- update_rect_list() in container.c for pixman region boxes
This is the same class of bug fixed by 62fd8c4 (height clamping) and
partially addressed by c2d6aff (too-many-containers guards).1 parent 6d25b10 commit da901a2
3 files changed
Lines changed: 25 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
435 | 435 | | |
436 | 436 | | |
437 | 437 | | |
| 438 | + | |
438 | 439 | | |
439 | | - | |
440 | | - | |
| 440 | + | |
| 441 | + | |
441 | 442 | | |
442 | 443 | | |
443 | 444 | | |
| |||
449 | 450 | | |
450 | 451 | | |
451 | 452 | | |
452 | | - | |
| 453 | + | |
453 | 454 | | |
454 | 455 | | |
455 | 456 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
84 | 90 | | |
85 | 91 | | |
86 | 92 | | |
| |||
153 | 159 | | |
154 | 160 | | |
155 | 161 | | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
156 | 168 | | |
157 | 169 | | |
158 | 170 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
338 | 338 | | |
339 | 339 | | |
340 | 340 | | |
341 | | - | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
342 | 350 | | |
343 | 351 | | |
344 | 352 | | |
| |||
0 commit comments