Guard all frame->core and frame->workspace dereferences in placement.c
against NULL frame pointers (Wayland windows have no WFrameWindow):
- calcSumOfCoveredAreas: skip windows without frame (no stacking level
or geometry available via frame; Wayland window client geometry is
tracked separately in wwin->client.* and wwin->frame_x/y).
- window_overlaps: add early-return path for frameless windows that uses
wwin->client.{width,height} and wwin->frame_x/y for the overlap test,
bypassing the frame->core stacking level check.
- getPlaceOrigin (icon-placement helper): guard frame->workspace reads
for WCLASS_MINIWINDOW and WCLASS_WINDOW parent types using logical-OR
with the wwin->workspace fallback.
Together these prevent NULL dereferences when smart/auto/cascade
placement iterates the managed-window list and encounters Wayland
windows alongside X11 windows.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| Makefile.am | ||
| test_geom.c | ||
| test_x11_event.c | ||
| wl-smoke-test.sh | ||
| x11-smoke-test.sh | ||