docs: mark Phase D complete, add src/ audit results
Phase D (WINGs widget X11 elimination) is complete with 7 commits. The src/ core audit confirms all X11 is already routed through wm_backend-> dispatch. The entire codebase has zero X11 executing on the Wayland path.
This commit is contained in:
parent
7077e00d12
commit
130fd760b5
|
|
@ -232,9 +232,41 @@ All Wayland-specific Phase B tasks from WAYLAND_ROADMAP.md are done:
|
|||
|
||||
---
|
||||
|
||||
## Phase D: WINGs Widget Porting
|
||||
## Phase D: WINGs Widget Porting — COMPLETE (2026-05-23)
|
||||
|
||||
*Ordered by dependency and impact.*
|
||||
*All WINGs shared widget code now has zero X11 executing on the Wayland path.*
|
||||
|
||||
### Phase D Summary
|
||||
|
||||
| Commit | Files | Description |
|
||||
|--------|-------|-------------|
|
||||
| 264679a | wwindow.c | ICCCM properties routed through viewBackend vtable |
|
||||
| 9eecb25 | wballoon.c, wpopupbutton.c, wtext.c | Drawing routed through render/view backends |
|
||||
| 2dce454 | wsplitview.c, wtextfield.c | XOR drawing via xor_fill_rect vtable, removed XRotateBuffers |
|
||||
| 9ccfd33 | selection.c | selection_release + selection_request vtable dispatch |
|
||||
| 0e26aa8 | wcolorpanel.c | 60 pixmap/copy/fill calls → render backend |
|
||||
| 8ec3380 | wcolorpanel.c | Magnifier gated via magnify_callback vtable (X11 provides impl, Wayland NULL) |
|
||||
| 7077e00 | wtext.c, wmisc.c | Removed dead X11 code (unused XEvent, dead #ifndef DOUBLE_BUFFER) |
|
||||
|
||||
### Verified Safe (no changes needed)
|
||||
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| winputmethod.c | W_InitIM called from W_X11PlatformInit only; W_CreateIC/W_DestroyIC guarded by scr->imctx (NULL on Wayland) |
|
||||
| wappresource.c | W_InitApplication called from W_X11PlatformInit only |
|
||||
| wballoon.c (drawing) | drawBalloon/makePixmap/W_BalloonShowText only reachable via x11_balloon_draw vtable |
|
||||
| DnD (dragcommon/dragsource/dragdestination) | drag_begin vtable intercepts WMDragImageFromView; all other DnD code only called from X11 event handlers |
|
||||
| wtextfield.c convertSelection | X11 selection handler, only triggered by SelectionRequest X events |
|
||||
| wcolorpanel.c magnifier | 40 X11 calls gated behind magnify_callback (NULL on Wayland) |
|
||||
|
||||
### Remaining X11 References (compile-time only, no runtime impact)
|
||||
|
||||
- `XPoint` struct type in wruler.c, wtabview.c (just 2 ints)
|
||||
- `XSetWindowAttributes` in wview.c (struct type for view init)
|
||||
- `#include <X11/keysym.h>` for key constants (xkbcommon uses same values)
|
||||
- `WMCreatePixmapFromXPixmaps` API name in wbutton.c, wcolorwell.c
|
||||
|
||||
---
|
||||
|
||||
### D.1 Route `widgets.c` screen init through backends
|
||||
- **File**: `WINGs/widgets.c` — 35 Xlib calls
|
||||
|
|
|
|||
|
|
@ -104,6 +104,19 @@ Three major libraries:
|
|||
- C3: Balloon tooltips — pixman text render → wlr_scene_buffer overlay in WL_LAYER_OVERLAY
|
||||
- C4: Cursor themes — wlr_xcursor_manager + wl_pointer_change_cursor already in place
|
||||
- C5: Window opacity — reads _NET_WM_WINDOW_OPACITY from XWayland, applies wlr_scene_buffer_set_opacity
|
||||
- **Phase D complete** (2026-05-23): WINGs widget X11 elimination
|
||||
- All shared widget code has zero X11 executing on Wayland path
|
||||
- 7 commits: wwindow.c vtable (264679a), wballoon/wpopupbutton/wtext (9eecb25), wsplitview/wtextfield xor_fill_rect (2dce454), selection vtable (9ccfd33), wcolorpanel render backend (0e26aa8), magnifier vtable callback (8ec3380), dead code removal (7077e00)
|
||||
- New vtable slots: xor_fill_rect, selection_request, magnify_callback, screen_grab_image (removed)
|
||||
- Verified safe (X11-only paths): winputmethod.c, wappresource.c, DnD, wballoon drawing, wtextfield convertSelection
|
||||
- Bug fix: NULL toplevel crash on Wayland expose dispatch (1ab108f)
|
||||
- **src/ core audit complete** (2026-05-23):
|
||||
- All X11 in src/ already routed through wm_backend-> dispatch
|
||||
- PropGetCheckProperty → wm_backend->prop_get_check_property
|
||||
- xdnd.c → wm_backend->xdnd_* (no-ops on Wayland)
|
||||
- wmspec.c → all property access through wm_backend
|
||||
- event.c selection handler → only reached with raw X11 events
|
||||
- **Result: entire codebase (WINGs + src/) has zero X11 executing on Wayland path**
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue