Commit Graph

17517 Commits

Author SHA1 Message Date
Kovid Goyal
46eee6e5df Update changelog 2026-03-22 07:54:51 +05:30
copilot-swe-agent[bot]
9b9bfeb02d Fix XI_BadDevice crash on USB device disconnect (#9723)
When a USB HID device (keyboard/mouse) is disconnected, X11 fires an
XI_HierarchyChanged event, which triggers read_xi_scroll_devices().
That function calls XIGetProperty() on devices from XIQueryDevice().
There is a race condition: if a device is removed between these calls,
X11 generates an XI_BadDevice error. Without a custom error handler, the
default X11 handler calls exit(), killing kitty.

Fix: wrap the device query loop in read_xi_scroll_devices() with
_glfwGrabErrorHandlerX11() / _glfwReleaseErrorHandlerX11() so that any
XI_BadDevice error is captured by kitty's own handler rather than the
default fatal one.

Fixes #9723
Fixes #9724
2026-03-22 07:52:49 +05:30
Kovid Goyal
07099b3a3d Add a reminder about cloning shell envs being unsafe 2026-03-22 07:36:55 +05:30
Kovid Goyal
48ab623f59 Graphics protocol: Fix crash when handling invalid PNG image with direct transmission 2026-03-21 17:23:06 +05:30
Kovid Goyal
bd2a5cccfb More work on dnd protocol 2026-03-21 17:13:19 +05:30
Kovid Goyal
6a71687942 Apply same correction for mid_lines() based chars as well
Also update changelog
2026-03-21 12:09:05 +05:30
copilot-swe-agent[bot]
b7d18d512e Fix diagonal line visual thickness in cross_line and half_cross_line
Fixes #9719
Fixes #9721
2026-03-21 12:04:43 +05:30
Kovid Goyal
b4005d0e97 Fix drop on clients. data should be requested only after the client actually requests it not on return from drop event callback 2026-03-21 09:06:24 +05:30
Kovid Goyal
59117ff5fd ... 2026-03-21 08:41:48 +05:30
Kovid Goyal
59cb8eb201 Fix offered mimes only being sent once 2026-03-21 08:41:48 +05:30
Kovid Goyal
bdd35ba84f Only send the i client id key when needed 2026-03-21 08:41:48 +05:30
Kovid Goyal
32d0d23f24 ... 2026-03-21 08:41:48 +05:30
Kovid Goyal
27ad4bc070 Fix some more misc bugs in the DnD code 2026-03-21 08:41:48 +05:30
Kovid Goyal
78d474fee3 Dont have empty m key when no payload is present 2026-03-21 08:41:47 +05:30
Kovid Goyal
1704d27004 ... 2026-03-21 08:41:47 +05:30
Kovid Goyal
eddaaed3e3 Modernize Go code 2026-03-21 08:41:47 +05:30
copilot-swe-agent[bot]
3d13cf1ca5 Fix three bugs in mouse demo kitten DnD drop handling
Fixes #9631
2026-03-21 08:41:47 +05:30
Kovid Goyal
3b17bf0b1a ... 2026-03-21 08:41:47 +05:30
copilot-swe-agent[bot]
e55c4468e5 Fix Too many timers bug and snprintf format string bug in DnD protocol
Fixes #9628
2026-03-21 08:41:47 +05:30
copilot-swe-agent[bot]
9ee058eaf9 Initial implementation of drop client in mouse_demo
Fixes #9623
2026-03-21 08:41:47 +05:30
Kovid Goyal
67b706ff71 Make DND code constant available to kittens 2026-03-21 08:41:47 +05:30
Kovid Goyal
b4d57525ea Only base64 encode payload when needed 2026-03-21 08:41:47 +05:30
Kovid Goyal
17e941a180 Implement finishing of drops 2026-03-21 08:41:47 +05:30
Kovid Goyal
5ad55ec936 Implement drop data transmission 2026-03-21 08:41:47 +05:30
Kovid Goyal
4f404f8c85 Send dropped message 2026-03-21 08:41:47 +05:30
Kovid Goyal
3a30c47942 Get drop status updates working 2026-03-21 08:41:47 +05:30
Kovid Goyal
111b35b6a7 Implement drop leaving window 2026-03-21 08:41:47 +05:30
Kovid Goyal
fba67322d6 Some docs 2026-03-21 08:41:47 +05:30
Kovid Goyal
b0e57b4dce Send drop move events to child 2026-03-21 08:41:46 +05:30
Kovid Goyal
8d069d3bcd More dnd protocol docs 2026-03-21 08:41:46 +05:30
Kovid Goyal
5a8132d241 Start and stop accepting drops 2026-03-21 08:41:46 +05:30
Kovid Goyal
2898324047 Start work on DnD protocol 2026-03-21 08:41:46 +05:30
Kovid Goyal
4483a6c110 version 0.46.2 v0.46.2 2026-03-21 06:36:04 +05:30
Kovid Goyal
c57305addc Ignore dependency CVEs against unreleased versions of deps 2026-03-20 10:45:08 +05:30
Kovid Goyal
81c3fa71a0 Update changelog 2026-03-20 08:32:26 +05:30
copilot-swe-agent[bot]
7c79e2fc9e Fix text selection via click-and-drag in unfocused splits
The regression was introduced by commit b277a016b which added an early
`return` in handle_button_event that prevented kitty's internal text
selection from starting on focus-transfer clicks to unfocused splits.

Changes:
- In handle_button_event: replace the early return with a local
  suppress_child_forwarding flag that prevents PRESS from being forwarded
  to child processes in mouse-tracking mode, while still allowing
  dispatch_mouse_event to run (which starts text selection)
- In mouse_event's active_drag_in_window release path: clear
  suppress_left_mouse_release to prevent stale flags after drags

Fixes #9713
Fixes #9715
2026-03-20 08:30:53 +05:30
copilot-swe-agent[bot]
ef7b456ce7 Fix scroll valuator reset when mouse leaves window without focus change
Fixes #9716
2026-03-20 08:13:45 +05:30
Kovid Goyal
98bf76ab52 Merge branch 'master' of https://github.com/kdnk/kitty 2026-03-19 19:59:54 +05:30
Kodai Nakamura
7e62808fb7 fix: Use strict modifier check for Ctrl+H IME unmarking
Refine the check to mods == GLFW_MOD_CONTROL to ensure that
combinations like Ctrl+Shift+H do not trigger unmarkText, following
code review feedback.
2026-03-19 23:21:34 +09:00
Kodai Nakamura
2c4b6d6d8e cocoa: Unmark IME pre-edit text on Ctrl+H
This ensures that Ctrl+H behaves like Backspace and correctly clears
the pre-edit state, preventing uncommitted characters from remaining
on the screen when using IMEs like the Japanese one on macOS.
2026-03-19 23:06:09 +09:00
Kovid Goyal
4eaf380c30 Update changelog 2026-03-19 15:36:02 +05:30
copilot-swe-agent[bot]
d37a9fd48a Fix marker highlighting for CJK/wide chars not at position 0
Fixes #9705
Fixes #9706
2026-03-19 15:35:14 +05:30
Kovid Goyal
0051b7b046 Update changelog 2026-03-19 15:33:03 +05:30
copilot-swe-agent[bot]
36be8be951 Fix massive scroll on focus return by resetting X11 scroll valuators on focus loss
When kitty loses focus and the user scrolls in another
application, X11 XI scroll valuators accumulate position values. When the
user returns to kitty and scrolls, delta (value - v->value) uses the stale
pre-focus-loss value, causing a massive unexpected scroll jump.

Fix: reset scroll valuators (mark them uninitialized) on FocusOut so the
first scroll event after focus is regained sets the baseline without firing
a scroll event.

Fixes #9703
Fixes #9707
2026-03-19 15:31:22 +05:30
Kovid Goyal
7c8e797985 Merge branch 'numtabs-i586-pr' of https://github.com/Blarse/kitty 2026-03-19 14:35:57 +05:30
Egor Ignatov
35acfb79c5 Fix signed/unsigned comparison error on i586 in pyreorder_tabs
On 32-bit platforms Py_ssize_t is int (signed 32-bit), while
os_window->num_tabs is unsigned int. Direct comparison triggers
-Werror=sign-compare. Cast the unsigned side to Py_ssize_t to
silence the warning. The value can never overflow Py_ssize_t
since num_tabs is bounded by the number of open tabs.
2026-03-19 09:20:40 +03:00
Kovid Goyal
ecf497b5ab Merge branch 'ls-title-overridden' of https://github.com/dannydulai/kitty 2026-03-17 22:11:42 +05:30
Danny Dulai
226195d18c Add title_overridden field to kitty @ ls output 2026-03-17 12:25:44 -04:00
Kovid Goyal
61421c9763 ... 2026-03-17 21:27:20 +05:30
Kovid Goyal
6360525a2a Fix shadow being drawn over notch area child window 2026-03-17 21:07:32 +05:30