diff options
| author | Berke Güzel <wenekar1@gmail.com> | 2026-10-14 14:20:10 +0300 |
|---|---|---|
| committer | Berke Güzel <wenekar1@gmail.com> | 2026-10-14 14:22:39 +0300 |
| commit | 2408acfac3acd22dc207d41daed82294de2f3275 (patch) | |
| tree | 55fe6c7265b8530c46139296cf95194d55b58e50 /src/platform/cocoa/desktop.m | |
| parent | 7ad4f86f2aac75935a52d31383593c1327204729 (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 'src/platform/cocoa/desktop.m')
0 files changed, 0 insertions, 0 deletions
