mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-09-01 14:53:30 +00:00
Wayland (glfw/wl_window.c): - Fix out-of-bounds access in send_drag_data: look up item by MIME type instead of using the data-request index i to index _glfw.drag.items[]. The compositor calls drag_source_send once per target window entered, so _glfw.wl.drag.count grows independently of item_count, causing _glfw.drag.items[i] to be out-of-bounds on the second drag, yielding a garbage optional_data pointer that made write() fail with EFAULT. - Fix protocol error "Drag has not ended": change on_fail and the GLFW_DRAG_DATA_REQUEST error path to call finish_drag_write(i)+return instead of cancel_drag(), which was calling wl_data_source_destroy() before the compositor ended the drag, violating the Wayland protocol. - Fix double-free of dr.pending_data: null the pointer after free and add cleanup to finish_drag_write(). - Fix missing finish_drag_write() after a full write in data-request mode, which left the pipe open causing the target to wait for EOF. X11 (glfw/x11_window.c): - Wrap XSendEvent() calls in send_xdnd_enter/position/leave/drop with _glfwGrabErrorHandlerX11()/_glfwReleaseErrorHandlerX11(). A target window destroyed between discovery and message delivery produced a BadWindow error that hit the default X11 abort handler. Now handled gracefully by clearing current_target or cancelling the drag." Fixes #9677 Fixes #9683 |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| backend_utils.c | ||
| backend_utils.h | ||
| cocoa_displaylink.m | ||
| cocoa_init.m | ||
| cocoa_joystick.h | ||
| cocoa_joystick.m | ||
| cocoa_monitor.m | ||
| cocoa_platform.h | ||
| cocoa_window.m | ||
| context.c | ||
| dbus_glfw.c | ||
| dbus_glfw.h | ||
| egl_context.c | ||
| egl_context.h | ||
| glfw.py | ||
| glfw3.h | ||
| glx_context.c | ||
| glx_context.h | ||
| ibus_glfw.c | ||
| ibus_glfw.h | ||
| init.c | ||
| input.c | ||
| internal.h | ||
| kwin-blur-v1.xml | ||
| linux_desktop_settings.c | ||
| linux_desktop_settings.h | ||
| linux_joystick.c | ||
| linux_joystick.h | ||
| linux_notify.c | ||
| linux_notify.h | ||
| main_loop.h | ||
| mappings.h | ||
| memfd.h | ||
| momentum-scroll.c | ||
| monitor.c | ||
| monotonic.c | ||
| nsgl_context.h | ||
| nsgl_context.m | ||
| null_init.c | ||
| null_joystick.c | ||
| null_joystick.h | ||
| null_monitor.c | ||
| null_platform.h | ||
| null_window.c | ||
| osmesa_context.c | ||
| osmesa_context.h | ||
| posix_thread.c | ||
| posix_thread.h | ||
| source-info.json | ||
| vulkan.c | ||
| window.c | ||
| wl_client_side_decorations.c | ||
| wl_client_side_decorations.h | ||
| wl_cursors.c | ||
| wl_cursors.h | ||
| wl_init.c | ||
| wl_monitor.c | ||
| wl_platform.h | ||
| wl_text_input.c | ||
| wl_text_input.h | ||
| wl_window.c | ||
| wlr-layer-shell-unstable-v1.xml | ||
| x11_init.c | ||
| x11_monitor.c | ||
| x11_platform.h | ||
| x11_window.c | ||
| xkb-compat-shim.h | ||
| xkb_glfw.c | ||
| xkb_glfw.h | ||