windowmaker-wl/WPrefs.app/po
Levi Neely a486329b52 Wayland backend abstraction: WMBackend vtable (Phases 0–30)
Introduce a display-system-agnostic WMBackend vtable that routes all
display operations through function pointers, making the WM policy
layer independent of X11.  The X11 implementation is preserved in
src/backend/x11/ and behaviour is unchanged.

Key structural changes
──────────────────────
• src/backend/backend_types.h — backend-neutral type definitions:
    WNativeWindow, WKeyCode, WContextKey, WBackendScreen,
    WBackendEvent (+typed fields), WNormalHints, WWMHints,
    WNETWindowType, WHeadGeometry, WClientAttributes, WClientVisual,
    WSegment, WPoint, WM_KEY_* keysym constants, WA_* atom IDs,
    WKB_GROUP*_INDEX, WCUR_NONE

• src/backend/backend.h — WMBackend vtable (~100 function-pointer
    slots) covering: frame/context lifecycle, stacking, focus, grabs,
    pointer, keyboard, overlays, properties, ICCCM, EWMH/NETWM,
    monitors, screen setup, cursors, extensions, error handlers.
    No <X11/> headers remain in this file after Phase 30.

• src/backend/x11/ — X11 backend implementation:
    x11_backend.c  full vtable; all display calls confined here
    x11_props.c    WM_NORMAL_HINTS / WM_HINTS translation
    x11_event.c    XEvent → WBackendEvent translation
    x11_monitor.c  Xinerama / RandR monitor query

Policy files cleaned
────────────────────
All 47 files in WM_POLICY_CLEAN_FILES pass check-no-x11-policy
(no direct #include <X11/> anywhere).  X11 types that still appear
in policy structs (Visual*, Colormap, Window, Atom …) arrive only
transitively via WINGs.h; the vtable boundary itself is X11-free.

Tests
─────
• tests/smoke-test.sh — full Xvfb lifecycle test (PASS)
• tests/test_geom.c   — geometry / constraint unit tests
• tests/test_x11_event.c — WBackendEvent field extraction tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 19:20:00 +01:00
..
Makefile.am WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Makefile.in Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
README WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
bg.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
ca.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
cs.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
de.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
es.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
et.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
fi.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
fr.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
fy.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
hr.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
hu.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
it.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
ja.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
ko.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
nl.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
pt.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
ru.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
sk.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
tr.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
uk.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
zh_CN.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
zh_TW.po WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00

README

File	Language		Current Maintainer
------------------------------------------------------------------------------
pt.po	Portuguese		Eliphas Levy Theodoro <eliphas@conectiva.com.br>
hr.po	Croatian		Toni Biliæ <tbilic@oliver.efos.hr>
fr.po	French			Bastien NOCERA <hadess@writeme.com>
				Hadess <hadess@infonie.fr>
				Antoine Hulin <antoine@origan.fdn.org>
ko.po	Korean			Byeong-Chan Kim <redhands@linux.sarang.net>
cs.po	Czech		 	Jiri Hnidek <Jiri.Hnidek@vslib.cz>
ja.po	Japanese		Kazuhide Takahashi <kazu@dgra.ne.jp>
				Takeo Hashimoto <HashimotoTakeo@mac.com>
zh_TW.Big5.po Chinese		Li Wei Jih <lwj@manufacture.com.tw>
zh_CN.po Chinese		Wang Jian <larkw@263.net>
es.po   Spanish			Alvaro Herrera <alvherre@webhost.cl>
fi.po	Finnish			Tomi Kajala <tomi@iki.fi>
it.po	Italian			Michele Campeotto <micampe@f2s.com>
ru.po	Russian			Igor P. Roboul <igor@srcso.sochi.su>
de.po   German			Torsten Marek <torsten.marek@vbdnet.de>
				Bernd Eggert <Bernd.Eggert@t-online.de>
				Guido Scholz <guido.scholz@bayernline.de>
hu.po   Hungarian		Horvath Szabolcs <horvathsz@penguinpowered.com>
bg.po	Bulgarian		Slavei Karadjov <slaff@exco.net>
				Anton Zinoviev <zinoviev@debian.org>
sk.po   Slovak			Jan 'judas' Tomka <judas@linux.sk>
et.po	Estonian		Ivar Smolin <okul@linux.ee>
ca.po	Catalan			Ernest Adrogué <eadrogue@gmx.net>
nl.po	Dutch			Alwin <translations@ziggo.nl>
fy.po	Frisian			Alwin <translations@ziggo.nl>