Update ACTION_PLAN.md and WAYLAND_ROADMAP.md

This commit is contained in:
Window Maker 2026-05-23 14:30:29 +02:00
parent f3cb593d0f
commit a0a27b56d5
2 changed files with 49 additions and 16 deletions

View File

@ -179,7 +179,8 @@ Key architecture point: wrlib's `convert_image` function pointer (`context->conv
- **Xlib calls eliminated**: 1
- **Blocked by**: nothing
### B.2 Eliminate `USE_DOCK_XDND` guards in `appicon.c`
### B.2 ~~Eliminate `USE_DOCK_XDND` guards in `appicon.c`~~ ✅ (commit 3d10085)
**Status**: DONE — dock_shadow frame_buf created for icon drag ghost overlay. All vtable ops (window_move, map, unmap, set_background_pixmap) already handle frame_bufs.
- **File**: `src/appicon.c` — 4 sites (lines 52, 131, 315, 338)
- **Operation**: The XDND setup and handling code is X11-specific. It should be moved behind a vtable slot:
1. Lines 52, 131: Move `#include "xdnd.h"` and `wXDNDMakeAwareness()` call into the X11 backend's `appicon_show` implementation
@ -194,6 +195,18 @@ Key architecture point: wrlib's `convert_image` function pointer (`context->conv
- **Xlib calls eliminated**: 1 `_x11_raw` access in `event.c`
- **Blocked by**: nothing
### Phase B Wayland Implementation — COMPLETE (2026-05-23)
All Wayland-specific Phase B tasks from WAYLAND_ROADMAP.md are done:
| Task | Description | Status |
|------|-------------|--------|
| B2 | Dock icon drag & drop — dock_shadow frame_buf created | ✅ commit 3d10085 |
| B3 | Dock auto-launch on login — pure policy (fork/exec), works as-is | ✅ no code needed |
| B4 | Clip workspace indicator — number + name rendered on clip icon | ✅ commit 3687ff0 |
| B5 | Drawer icon — directional arrow rendered | ✅ commit 9ed1c19 |
| B6 | Icon bounce on launch — `doAppBounce` uses vtable `window_move`, already works | ✅ no code needed |
---
## Phase C: Visual Polish & Animations
@ -519,7 +532,7 @@ WAVE 1 (independent, no prerequisites):
~~A4.1 workspace.c USE_XINERAMA → backend-neutral~~ ✅
A5.1 ~~switchpanel.c XEvent* → WMEvent*~~ ✅
~~B.1 appicon.c XClearArea → vtable~~ ✅
B.2 appicon.c USE_DOCK_XDND → backend
B.2 ~~appicon.c USE_DOCK_XDND → backend~~ ✅
B.3 ~~dock.c/h XEvent* → WMEvent*~~ ✅
~~C.1 moveres.c XDrawLine → overlay vtable~~ ⏭️ (inside `#if 0` — dead code, skip)
D.1 widgets.c screen init → backend guard

View File

@ -1,6 +1,6 @@
# WindowMaker Wayland Port — Roadmap
Last updated: 2026-05-18
Last updated: 2026-05-23
## Governing Principles
@ -50,7 +50,7 @@ Three major libraries:
---
## Completed (as of 2026-05-18)
## Completed (as of 2026-05-23)
- Backend vtable abstraction (150+ slots)
- Policy layer fully X11-free (zero direct Xlib calls in WM core)
@ -83,6 +83,21 @@ Three major libraries:
- **A4 Workspace switching**: map/unmap via vtable already worked; added workspace name badge overlay (pixman text rendering in WL_LAYER_OVERLAY, fade animation via new `workspace_badge_get_background` vtable slot)
- **A7 Placement**: verified pure policy code, zero backend calls needed
- **B1 App icon rendering**: wl_appicon_paint/wl_icon_paint already implemented; fixed wl_appicon_show (was no-op, now calls paint_app_icon for initial placement + map)
- **Phase B complete** (2026-05-23):
- B2: dock_shadow frame_buf for icon drag ghost overlay (commit 3d10085)
- B3: Auto-launch — pure policy (fork/exec), works as-is
- B4: Clip workspace indicator — workspace number + name rendered on clip icon (commit 3687ff0)
- B5: Drawer icon renders directional arrow (commit 9ed1c19)
- B6: Icon bounce — already works (`doAppBounce` uses vtable `window_move`; vtable slot correctly a no-op, same as X11)
- **Bug fixes** (2026-05-23):
- Titlebar buttons not responding to clicks (commit 8fb4083)
- Modal dialogs not receiving mouse clicks (commit 68d4301)
- WINGs widget clicks on Wayland — child view hit-testing (commit ee8489e)
- WINGs dialog click-to-focus lookup (commits 7fe8121, 403ee93)
- Titlebar button scene_bufs enabled for click and visibility (commit 0cf867d)
- Button scene_bufs raised above titlebar (commit a34d828)
- Titlebar button rendering — proper colors, bevel, pressed state (commit 5a4d989)
- Button bevel colors derived from titlebar background (commit f3cb593)
---
@ -107,11 +122,13 @@ Priority: HIGH — needed for daily-driver use.
| # | Task | Key Files | Complexity |
|---|------|-----------|------------|
| B1 | ~~App icon rendering (load .tiff/.png, render into dock)~~ | appicon.c, wrlib loaders, vtable appicon_show | ✅ Done |
| B2 | Dock icon drag & drop (reorder, add/remove) | dock.c DnD handlers | Medium |
| B3 | Dock auto-launch on login | dock.c session restore | Low |
| B4 | Clip workspace indicator (number, arrows) | dock.c clip paint | Low |
| B5 | Drawer support (horizontal dock extension) | dock.c drawer subsystem | Medium |
| B6 | Icon bounce on launch | vtable appicon_bounce | Low |
| B2 | ~~Dock icon drag & drop (reorder, add/remove)~~ | dock.c DnD handlers | ✅ Done |
| B3 | ~~Dock auto-launch on login~~ | dock.c session restore | ✅ Done |
| B4 | ~~Clip workspace indicator (number, arrows)~~ | dock.c clip paint | ✅ Done |
| B5 | ~~Drawer support (horizontal dock extension)~~ | dock.c drawer subsystem | ✅ Done |
| B6 | ~~Icon bounce on launch~~ | vtable appicon_bounce | ✅ Done |
**Phase B: COMPLETE**
---
@ -226,26 +243,29 @@ For running without a host compositor:
```
NOW (daily-driver basics):
A1. Stacking (raise/lower)
A2. ~~Maximize~~ ✅
A3. ~~Shade~~ ✅
~~A1. Stacking (raise/lower)~~ ✅
~~A2. Maximize~~ ✅
~~A3. Shade~~ ✅
~~A4. Workspace switching~~ ✅
~~A5. Alt-Tab cycling~~ ✅
A6. Icon/minimize
~~A6. Icon/minimize~~ ✅
~~A7. Placement (verify)~~ ✅
NEXT (visual completeness):
B1. App icon rendering (wrlib → pixman)
F1. wrlib RContext for Wayland
~~B1. App icon rendering (wrlib → pixman)~~ ✅
~~F1. wrlib RContext for Wayland~~ ✅
C1. Slide animations
C2. Menu scrolling
C3. Balloon tooltips
C4. Cursor themes
C5. Window opacity
THEN (full feature parity):
D*. Test all WINGs widgets
E1. Window Inspector
E4. Icon Chooser
G*. Session persistence
B2-B6. Full dock features
~~B2-B6. Full dock features~~ ✅
LATER (production-ready):
H1. Multi-monitor