summaryrefslogtreecommitdiff
path: root/tests/common/test_public_api.c
diff options
context:
space:
mode:
authorBerke Güzel <wenekar1@gmail.com>2026-10-14 14:20:10 +0300
committerBerke Güzel <wenekar1@gmail.com>2026-10-14 14:22:39 +0300
commit2408acfac3acd22dc207d41daed82294de2f3275 (patch)
tree55fe6c7265b8530c46139296cf95194d55b58e50 /tests/common/test_public_api.c
parent7ad4f86f2aac75935a52d31383593c1327204729 (diff)
X11: survive server loss, chain X errors, fix popups and pointer requests
- Losing the X server queues DISPLAY_LOST instead of exiting. A process-wide IO error handler returns for YASL displays, so Xlib calls the per-display exit handler and returns; later waits fail with ENOTCONN, and dispatch and flush make no Xlib calls on a lost display. - Errors on other displays chain to the previous handler, restored when the last YASL display closes. - MIT-SHM attach is synced; a refused attach detaches and falls back to XPutImage. Shared images are used only for 32-bit TrueColor 0xAARRGGBB. - Undecorated windows set MWM_HINTS_DECORATIONS and leave functions alone. - Fixed-size windows keep their min/max hints in step with set_size. - Swap interval is stored per surface and applied when it becomes current; gl_make_current(NULL) without EGL succeeds as a no-op. - XInitThreads runs before the first connection. - Move, resize, window menu, drag start and place-under-pointer need a held pointer button (ESTALE). Move and resize also need _NET_WM_MOVERESIZE on the root (ENOTSUP) and send the held button. - _GTK_SHOW_WINDOW_MENU carries the XI2 client pointer and root coordinates. - Popups always present through CPU and grab the pointer (XI2 device grab when available); a press outside every YASL window closes the topmost popup. - Drag start while active returns EBUSY; drag carry without a drag EINVAL. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/common/test_public_api.c')
0 files changed, 0 insertions, 0 deletions