Defines a Wayland protocol for native dock applications (dockapps).
Clients create a wl_surface, wrap it with wmaker_dockapp_v1, and
render ARGB content at the compositor-specified tile size. The
compositor places the surface in a dock slot with full transparency
support, eliminating the opaque-black-background issue of XWayland.
Protocol:
- wmaker_dockapp_manager_v1: global, get_dockapp(surface)
- wmaker_dockapp_v1: set_app_id, configure event, closed event
Compositor implementation registers the global and handles surface
commit by placing the dockapp in its assigned dock tile frame_buf
tree.
The previous version had set_position(x, y) in compositor-global
coordinates, but Wayland clients don't know their toplevel's screen
position — the editmenu and popup button code naturally compute
positions relative to the parent toplevel via accumulated view->pos.
Add set_parent(xdg_toplevel) request. When a parent is set,
set_position(x, y) is interpreted as offsets from the parent
toplevel's top-left corner.
Compositor side resolves the parent's wl_toplevel_view via
wlr_xdg_toplevel_from_resource → wl_find_view_by_xdg_surface,
then adds parent->x and parent->y to the requested offsets.
Client side (wclient_wl.c) tracks the first non-popup toplevel as
ctx->main_toplevel and calls set_parent on every popup wrapper to
anchor it to the application's main window.
Generated *-protocol.c and *-server-protocol.h files were accidentally
committed in the previous commit. The .gitignore was also excluding
the protocols/ source directory (where the XML lives). Fix both.