windowmaker-wl/src
lkn 143b8906bb wayland: fix view_table probe chain corruption on widget reopen
The WINGs view_table (open-addressing hash, size 256) used id=0 as both
"empty" and "deleted". Zeroing a slot on removal broke probe chains for
entries that hashed past that slot. After two dialog open/close cycles
(~40 views created and destroyed), enough chains were broken that
W_GetViewForWindow/W_GetViewBacking returned NULL for valid IDs.

Fix: use a tombstone marker (id=1) for deleted slots. Lookups skip
tombstones (continue probing), inserts reuse them. This is the standard
approach for deletion in open-addressing hash tables (Knuth Vol.3 §6.4).

Also:
- wl_destroy now calls view_table_remove + frees backing pixman image
- wl_frame_destroy cleans up child frame_bufs
- client_reparent existing path re-links backing and recreates scene_buf
- client_reparent to root destroys the child frame_buf
2026-06-22 00:21:42 +02:00
..
backend wayland: fix view_table probe chain corruption on widget reopen 2026-06-22 00:21:42 +02:00
GNUstep.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
Makefile.am fix build 2026-06-08 16:10:59 +02:00
WindowMaker.h wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
actions.c route remaining wm_backend->appicon_paint calls through wAppIconPaint 2026-06-21 18:58:08 +02:00
actions.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
appicon.c appicon: collapse wAppIconPaint into a thin wrapper over wIconPaint 2026-06-21 19:00:46 +02:00
appicon.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
application.c route remaining wm_backend->appicon_paint calls through wAppIconPaint 2026-06-21 18:58:08 +02:00
application.h wayland: fix double-free crash when destroying shared WApplication 2026-06-21 17:43:42 +02:00
appmenu.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
appmenu.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
balloon.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
balloon.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
client.c client: use wIconPaint instead of raw backend icon_paint 2026-06-21 18:59:36 +02:00
client.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
colormap.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
colormap.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
cycling.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
cycling.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
def_pixmaps.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
defaults.c route remaining wm_backend->appicon_paint calls through wAppIconPaint 2026-06-21 18:58:08 +02:00
defaults.h defaults: use nanosecond mtime precision to detect rapid file writes 2026-05-24 15:24:03 +02:00
dialog.c fix: realize dialog panel before client_reparent so WMWidgetXID returns a valid view ID 2026-05-30 15:45:09 +02:00
dialog.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
dock.c dock: route all appicon paints through wAppIconPaint 2026-06-21 18:53:30 +02:00
dock.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
dockedapp.c dock: route all appicon paints through wAppIconPaint 2026-06-21 18:53:30 +02:00
dockedapp.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
event.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
event.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
extend_pixmaps.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
framewin.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
framewin.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +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 fix: resize/move indicator (gview) not updating on Wayland 2026-05-30 11:37:51 +02:00
geomview.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
icon.c icon: look up freedesktop icon theme for native Wayland clients 2026-06-21 19:24:59 +02:00
icon.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
keybind.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
main.c fix WidgetColor crash: WMCreatePropListFromDescription creates corrupt array elements in pure Wayland build, skip getTexture for WidgetColor until WINGs PL is fixed; remove all debug traces; disable crash recovery loop 2026-06-06 07:47:19 +02:00
main.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
menu.c menu: fix appicon menu hit detection and edge scrolling during drag 2026-06-21 17:06:09 +02:00
menu.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
misc.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
misc.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
monitor.c fix WidgetColor crash: WMCreatePropListFromDescription creates corrupt array elements in pure Wayland build, skip getTexture for WidgetColor until WINGs PL is fixed; remove all debug traces; disable crash recovery loop 2026-06-06 07:47:19 +02:00
monitor.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
motif.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
motif.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
moveres.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
osdep.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02: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 wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
pixmap.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
placement.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
placement.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
properties.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
properties.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
resources.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
resources.h wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
rootmenu.c defaults: use nanosecond mtime precision to detect rapid file writes 2026-05-24 15:24:03 +02:00
rootmenu.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
screen.c fix WidgetColor crash: WMCreatePropListFromDescription creates corrupt array elements in pure Wayland build, skip getTexture for WidgetColor until WINGs PL is fixed; remove all debug traces; disable crash recovery loop 2026-06-06 07:47:19 +02:00
screen.h wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
session.c session: debug prints in wl_prop_get_wm_class to diagnose xterm save failure 2026-05-28 22:34:36 +02:00
session.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
shutdown.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
shutdown.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
stacking.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
stacking.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
startup.c fix WidgetColor crash: WMCreatePropListFromDescription creates corrupt array elements in pure Wayland build, skip getTexture for WidgetColor until WINGs PL is fixed; remove all debug traces; disable crash recovery loop 2026-06-06 07:47:19 +02:00
startup.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
superfluous.c cleanup: remove debug wwarning/fprintf output 2026-06-21 17:25:06 +02:00
superfluous.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
switchmenu.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
switchmenu.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
switchpanel.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
switchpanel.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
texture.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
texture.h wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
usermenu.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
usermenu.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
wconfig.h wings: phase γ (widgets.c) — split Xlib calls into widgets_x11.c 2026-05-24 10:55:30 +02:00
wconfig.h.in Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wcore.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
wcore.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
wdefaults.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
wdefaults.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
window.c wayland: group all windows with same app_id into one appicon 2026-06-21 19:10:42 +02:00
window.h wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
winmenu.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
winmenu.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
winspector.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
winspector.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
wmaker.prev confine X11 calls to wl_xdisplay.c and wl_xwayland.c: move XInternAtom/XFlush/XSync to wl_xdisplay.c, move XGetImage/opacity to wl_xwayland.c, remove <X11/Xlib.h> from wl_atom.c/wl_event.c/wl_client.c/wl_framebuf.c 2026-06-05 18:30:20 +02:00
workspace.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
workspace.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
wsmap.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
wsmap.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
xdg-shell-protocol.h wayland: Phase 35 — advertise core Wayland protocol globals 2026-03-27 23:09:39 +01:00
xinerama.c wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
xinerama.h wings: revert accidental WNativeWindow rename in strings/comments 2026-05-24 11:42:37 +02:00
xmodifier.c wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00
xmodifier.h arch: move X11 modifier-keymap discovery into X11 backend 2026-05-24 08:43:32 +02:00
xutil.c wings: phase β — rename X11 typedefs in shared/Wayland code 2026-05-24 10:49:47 +02:00
xutil.h wm core: shared src/ is now X11-free at the source level 2026-05-24 12:52:31 +02:00