Update ACTION_PLAN.md and WAYLAND_ROADMAP.md
This commit is contained in:
parent
f3cb593d0f
commit
a0a27b56d5
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue