windowmaker-wl/src
Window Maker 5c6fa776a9 wayland: implement alt-tab window cycling and switch panel (A5)
Vtable slots implemented in wl_backend.c:
- window_set_background_pixmap: composite pixman image into frame_buf/WINGs view
- window_clear: fill frame_buf/WINGs view with transparent black
- pixmap_free: pixman_image_unref
- shape_combine_mask: wlr_scene_buffer_set_opaque_region from mask pixman image
- switchpanel_send_enter: focus-guard flag to suppress spurious focus on panel destroy
- keyboard_grab/keyboard_ungrab: suppress client key forwarding during alt-tab loop

WINGs view backing: wl_window_clear and wl_window_set_background_pixmap
fall back to W_GetViewBacking() for WINGs window IDs when frame_buf_find fails.

cycling.c: synthesize XEvent when _x11_raw is NULL (Wayland native events)
to prevent segfault in switchpanel event handling.

Alt-tab cycling works. Switch panel rendering still needs investigation.
2026-05-16 00:49:29 +02:00
..
backend wayland: implement alt-tab window cycling and switch panel (A5) 2026-05-16 00:49:29 +02:00
GNUstep.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
Makefile.am wayland: Phase 29 — pixman SHM surface primitives 2026-03-31 13:31:06 +02:00
WindowMaker.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
actions.c wayland: iconify/deiconify and post_dispatch struct field 2026-05-15 18:55:14 +02:00
actions.h moveres: replace XEvent with WMEvent in move/resize functions 2026-05-14 13:15:34 +02:00
appicon.c wayland: implement pointer grab for icon drag-and-move 2026-05-15 23:36:17 +02:00
appicon.h Remove XEvent from dock.c and appicon.c click handlers 2026-05-13 16:45:01 +02:00
application.c Phase 80: eliminate all 43 if(!dpy) return guards via vtable dispatch 2026-05-13 10:01:57 +02:00
application.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
appmenu.c Phase 80d: clean X11 from appmenu, main, switchpanel, window, xutil, texture 2026-05-13 10:42:06 +02:00
appmenu.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
balloon.c Fix input dispatch: custom event loop + modal menu support 2026-05-13 16:22:13 +02:00
balloon.h Phase 80p: clean X11 from balloon.c, dock.c 2026-05-13 12:25:57 +02:00
client.c Phase 80t: ZERO X11 symbols in policy files — architecture complete 2026-05-13 13:03:14 +02:00
client.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
colormap.c Phase 80g: clean X11 from motif.c, colormap.c, resources.c 2026-05-13 10:55:30 +02:00
colormap.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
cycling.c wayland: implement alt-tab window cycling and switch panel (A5) 2026-05-16 00:49:29 +02:00
cycling.h WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
def_pixmaps.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
defaults.c Phase 80l: clean X11 from defaults.c 2026-05-13 11:27:07 +02:00
defaults.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
dialog.c x11: resize fake leader window to panel dimensions before reparenting 2026-05-14 21:25:51 +02:00
dialog.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
dock.c wayland: implement pointer grab for icon drag-and-move 2026-05-15 23:36:17 +02:00
dock.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
dockedapp.c x11: resize fake leader window to panel dimensions before reparenting 2026-05-14 21:25:51 +02:00
dockedapp.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
event.c WINGs/wevent: remove _x11_raw from WMHandleEvent dispatch path 2026-05-14 20:24:05 +02:00
event.h WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
extend_pixmaps.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
framewin.c wl_backend: fix button positioning on frame resize 2026-05-14 23:29:50 +02:00
framewin.h Remove XEvent from frame callbacks (titlebar, resizebar, buttons) 2026-05-13 17:27:02 +02:00
geom.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
geom.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
geomview.c WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
geomview.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
icon.c wayland: fix close/iconify buttons and miniwindow rendering 2026-05-15 09:49:06 +02:00
icon.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
keybind.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
main.c Phase 84: eliminate all backend guards from policy code 2026-05-14 12:41:01 +02:00
main.h Phase 84: eliminate all backend guards from policy code 2026-05-14 12:41:01 +02:00
menu.c menu: include window_menu in findMenu hit-testing 2026-05-14 19:25:42 +02:00
menu.h Phase 80c: add vtable slots for cross-mode rendering functions 2026-05-13 10:24:21 +02:00
misc.c Phase 80s: clean X11 from menu.c, misc.c 2026-05-13 12:55:58 +02:00
misc.h Phase 80: eliminate all 43 if(!dpy) return guards via vtable dispatch 2026-05-13 10:01:57 +02:00
monitor.c Phase 84: eliminate all backend guards from policy code 2026-05-14 12:41:01 +02:00
monitor.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
motif.c Phase 80g: clean X11 from motif.c, colormap.c, resources.c 2026-05-13 10:55:30 +02:00
motif.h Phase 80: eliminate all 43 if(!dpy) return guards via vtable dispatch 2026-05-13 10:01:57 +02:00
moveres.c moveres: replace XEvent with WMEvent in move/resize functions 2026-05-14 13:15:34 +02:00
osdep.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
osdep_bsd.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
osdep_darwin.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
osdep_linux.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
osdep_stub.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
pixmap.c Phase 80f: clean X11 from client.c, pixmap.c 2026-05-13 10:48:54 +02:00
pixmap.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
placement.c wayland: Phase 70 — apply WIN_WORKSPACE macro to all frame->workspace reads 2026-03-28 09:46:35 +01:00
placement.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
properties.c Phase 80j: clean X11 from shutdown.c, framewin.c, properties.c 2026-05-13 11:18:19 +02:00
properties.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
resources.c Phase 80g: clean X11 from motif.c, colormap.c, resources.c 2026-05-13 10:55:30 +02:00
resources.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
rootmenu.c Phase 80h: clean X11 from rootmenu.c 2026-05-13 10:59:18 +02:00
rootmenu.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
screen.c Phase 84: eliminate all backend guards from policy code 2026-05-14 12:41:01 +02:00
screen.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
session.c wayland: Phase 69 — WIN_WORKSPACE macro; safe workspace reads without frame 2026-03-28 09:43:09 +01:00
session.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
shutdown.c Phase 84: eliminate all backend guards from policy code 2026-05-14 12:41:01 +02:00
shutdown.h Phase 80: eliminate all 43 if(!dpy) return guards via vtable dispatch 2026-05-13 10:01:57 +02:00
stacking.c wayland: implement correct stacking model with scene-graph level trees 2026-05-15 09:11:46 +02:00
stacking.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
startup.c Phase 84: eliminate all backend guards from policy code 2026-05-14 12:41:01 +02:00
startup.h Phase 80k: clean X11 from startup.c 2026-05-13 11:24:45 +02:00
superfluous.c Phase 80o: clean X11 from superfluous.c 2026-05-13 11:46:40 +02:00
superfluous.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
switchmenu.c wayland: Phase 69 — WIN_WORKSPACE macro; safe workspace reads without frame 2026-03-28 09:43:09 +01:00
switchmenu.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
switchpanel.c Phase 80d: clean X11 from appmenu, main, switchpanel, window, xutil, texture 2026-05-13 10:42:06 +02:00
switchpanel.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
texture.c Move wDrawBevel X11 rendering to backend via draw_bevel vtable slot 2026-05-13 10:34:22 +02:00
texture.h Fix FREE_PIXMAP macro to use vtable instead of direct XFreePixmap 2026-05-13 10:32:47 +02:00
usermenu.c wayland: Phase 77 — XKB keymap + keysym_to_keycode + modifier masks 2026-03-28 20:32:07 +01:00
usermenu.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
wconfig.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wconfig.h.in Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wcore.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wcore.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wdefaults.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wdefaults.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
window.c moveres: replace XEvent with WMEvent in move/resize functions 2026-05-14 13:15:34 +02:00
window.h Phase 80: eliminate all 43 if(!dpy) return guards via vtable dispatch 2026-05-13 10:01:57 +02:00
winmenu.c Phase 80b: eliminate if(dpy) guards and replace X11 calls with vtable dispatch 2026-05-13 10:21:00 +02:00
winmenu.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
winspector.c x11: resize fake leader window to panel dimensions before reparenting 2026-05-14 21:25:51 +02:00
winspector.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
wmspec.c wl_backend: fix unshade — re-enable and raise client surface and frame 2026-05-14 22:26:07 +02:00
wmspec.h Phase 80: eliminate all 43 if(!dpy) return guards via vtable dispatch 2026-05-13 10:01:57 +02:00
workspace.c Phase 80b: eliminate if(dpy) guards and replace X11 calls with vtable dispatch 2026-05-13 10:21:00 +02:00
workspace.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
wsmap.c Phase 80i: clean X11 from winspector.c, wsmap.c 2026-05-13 11:04:26 +02:00
wsmap.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
xdg-shell-protocol.h wayland: Phase 35 — advertise core Wayland protocol globals 2026-03-27 23:09:39 +01:00
xdnd.c Phase 80: eliminate all 43 if(!dpy) return guards via vtable dispatch 2026-05-13 10:01:57 +02:00
xdnd.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
xinerama.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
xinerama.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
xmodifier.c wayland: Phase 77 — XKB keymap + keysym_to_keycode + modifier masks 2026-03-28 20:32:07 +01:00
xmodifier.h wayland: Phase 77 — XKB keymap + keysym_to_keycode + modifier masks 2026-03-28 20:32:07 +01:00
xutil.c Phase 80d: clean X11 from appmenu, main, switchpanel, window, xutil, texture 2026-05-13 10:42:06 +02:00
xutil.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00