Commit graph

17502 commits

Author SHA1 Message Date
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 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
Kovid Goyal
0321ca04f0
Cleanup previous PR
Fix leak of sub view and ensure child window has correct color space
2026-03-17 20:14:02 +05:30
Kovid Goyal
42305c3464
Merge branch 'safe-area-insets' of https://github.com/dannydulai/kitty 2026-03-17 19:55:19 +05:30
Danny Dulai
489473a8cf Add macOS notch avoidance for traditional fullscreen
Position the window below the notch by reducing the frame height by
safeAreaInsets.top. Create a fullscreen child window behind it with a
colored subview covering just the notch strip, matching the terminal
background color and opacity.

Also fix background_opacity not triggering a chrome update on config
reload.
2026-03-17 10:06:57 -04:00
Kovid Goyal
0479962dd7
Update changelog 2026-03-17 14:29:56 +05:30
copilot-swe-agent[bot]
3862ae26cc
Fix fuzzy match highlighting in choose_files kitten
Fixes #9693
2026-03-17 14:28:56 +05:30
Kovid Goyal
f2734fcfbd
Cleanup copilot code 2026-03-17 13:39:07 +05:30
copilot-swe-agent[bot]
e98f80d836
Prevent multiple stacking Rename tab overlay windows
Fixes #9691
Fixes #9692
2026-03-17 13:37:08 +05:30
Kovid Goyal
f57eb74dbe
Update changelog 2026-03-17 09:31:51 +05:30
Kovid Goyal
8457258f26
... 2026-03-17 09:30:23 +05:30
Kovid Goyal
6704f359a9
Update changelog 2026-03-17 08:57:30 +05:30
copilot-swe-agent[bot]
877be65447
Fix crashes when moving tab between OS windows (issue #9677)
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
2026-03-17 08:53:17 +05:30
Kovid Goyal
ad53a5bdff
Cleanup previous PR 2026-03-17 08:40:56 +05:30
copilot-swe-agent[bot]
25f97f4ce5
Implement on_quit event for global watchers
Fixes #9682
2026-03-17 08:37:30 +05:30
Kovid Goyal
02a34ecd04
Fix #9684 2026-03-17 08:32:38 +05:30
Kovid Goyal
c977d1edcb
... 2026-03-17 08:22:45 +05:30