Commit Graph

1521 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
344fa2bc5f Extract update_drop_source_actions helper in cocoa backend to avoid duplication
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/91dbd1d2-ae9d-4816-b710-7d6f3147cda6

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-14 05:49:20 +00:00
copilot-swe-agent[bot]
077f402bee Implement source_actions for X11 and cocoa DnD backends
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/91dbd1d2-ae9d-4816-b710-7d6f3147cda6

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-14 05:46:21 +00:00
Kovid Goyal
6d4371f596 Properly pass source actions to drop events
Implemented for Wayland. Needs implementation for X11 and macOS
2026-05-14 11:07:52 +05:30
Kovid Goyal
5eee2c54ce Bloody Apple native apps refuse to accept drops if a private MIME type is present. Sigh. Back to the drawing board. 2026-05-14 08:25:58 +05:30
Kovid Goyal
f2c79ed7c7 Add debug logging for NSDraggingSession 2026-05-14 08:16:03 +05:30
Kovid Goyal
c2a7225657 Ensure drag finish timer doesnt fire will waiting for remote item data 2026-05-13 10:59:44 +05:30
copilot-swe-agent[bot]
217a01cfdf Implement promised_data_ready() in glfw/cocoa_window.m
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/38f75cd7-b61b-42b4-9d28-9a40459a9536

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-13 03:03:47 +00:00
Kovid Goyal
c909809bb4 More work on DnD kitten 2026-05-13 08:25:14 +05:30
Kovid Goyal
b28712bfae More work on the DnD kitten 2026-05-13 07:17:06 +05:30
Kovid Goyal
824b46507c Keep text/uri-list as private MIME for kitty to kitty DnD 2026-05-12 13:20:35 +05:30
Kovid Goyal
e4eb85216d Cleanup previous PR 2026-05-08 21:24:38 +05:30
copilot-swe-agent[bot]
e99a6c686b Add DRAG_FINISH_TIMEOUT_SECONDS named constant for the 2-second timeout
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/5f783d91-e095-4f98-9d13-9d6359889ea2

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-08 15:29:11 +00:00
copilot-swe-agent[bot]
2b4c51707f Fix GLFW_DRAG_FINSHED never firing after GLFW_DRAG_DROPPED on macOS
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/5f783d91-e095-4f98-9d13-9d6359889ea2

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-08 15:27:36 +00:00
Kovid Goyal
46c83298e3 dnd kitten: get local -> finder working 2026-05-08 20:34:30 +05:30
Kovid Goyal
9e8bd7207b Track remote client on drag source items 2026-05-08 16:54:20 +05:30
copilot-swe-agent[bot]
6f5ac9f342 Fix macOS drag MOVE events: check mimes_count not drag_accepted in draggingUpdated
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/c5e95934-f4e3-4ba9-8b12-5240a853fd3a

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-06 10:33:13 +00:00
Kovid Goyal
3896846b63 Fix self drops on macOS 2026-05-05 12:42:09 +05:30
Kovid Goyal
021377c1b6 Yet another workaround for Wayland's awful design 2026-05-04 22:53:05 +05:30
Kovid Goyal
6b9d449b0d Fix #9904 2026-04-22 07:43:57 +05:30
Owen Mead-Robins
44d530f82e Fix bug #9215 cmd+` now cycles windows properly on MacOS Tahoe 2026-04-21 11:52:12 -07:00
zhaolei
b16221a1d3 macos: explicitly enable modern window corners on macOS 26
Use an explicit runtime check to apply the newer corner styling on macOS 26 while leaving behavior unchanged on older macOS versions for compatibility.

Also add the required QuartzCore framework for linking the corner curve API.
2026-04-18 20:41:38 +08:00
Kovid Goyal
4076c43783 Report missing pointer-gestures protocol 2026-04-14 09:44:48 +05:30
Kovid Goyal
95593ef008 Wayland: Allow holding momentum scroll by putting two finger on touchpad. Fixes #9863 2026-04-14 09:39:57 +05:30
Petar Dobrev
a4170d4b59 Added macos_fullscreen_ignore_safe_area_insets option 2026-04-09 10:27:01 +03:00
Kovid Goyal
1c4097edde Remove unnecessary event pump when attaching top level drag surface 2026-04-07 17:25:18 +05:30
Kovid Goyal
837f55fe21 ... 2026-04-07 13:47:47 +05:30
copilot-swe-agent[bot]
a90b8470ac Fix drag icon not visible under GNOME Wayland
Fixes #9823
2026-04-07 13:31:04 +05:30
Kovid Goyal
cd3860817b ... 2026-04-07 11:47:58 +05:30
Kovid Goyal
9fbb079ad6 Add logging for DnD events on Wayland 2026-04-07 11:32:12 +05:30
Kovid Goyal
dc55052f0c Wayland: set drop accepted operations 2026-04-07 10:40:14 +05:30
z3rco
b39f88c6a2 Fix multiple security vulnerabilities across C, Python, and Go code
Timing-safe comparisons:
- crypto.c: Replace memcmp with CRYPTO_memcmp for Secret equality,
  require equal lengths before comparing
- remote_control.py: Constant-time password lookup to avoid leaking
  valid passwords via dict hash timing
- file_transmission.py: Use hmac.compare_digest for bypass token
  comparison instead of ==

Memory safety:
- child-monitor.c: Fix inverted condition in write_to_peer that
  prevented memmove from ever executing on partial writes
- ibus_glfw.c: Null-terminate IBUS_ADDRESS copy to prevent string
  overread when strlen >= PATH_MAX
- x11_window.c: Add NULL checks after realloc in clipboard/DnD
  data handling (two sites)
- dnd.c: Cap accepted_mimes at 1MB to prevent unbounded growth,
  fix realloc to not lose the original pointer on failure
- png-reader.c: Cast to size_t before multiplication to prevent
  integer overflow on 32-bit platforms

Secrets hygiene:
- disk-cache.c: Zero encryption_key with explicit_bzero before free

Tar extraction hardening:
- tar.go: Validate hardlink targets against destination prefix to
  prevent writing outside extraction directory
- tar.go: Strip setuid/setgid/sticky bits from extracted files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 16:10:46 +01:00
copilot-swe-agent[bot]
2f33460864 Add operations==-3 cancel drag support to glfwStartDrag
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/eff7e2c8-ab7a-4967-95b5-e65631245701

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-02 07:14:36 +00:00
Kovid Goyal
9721346387 XWayland: Fix a regression where some wheel mice were not scrolling properly
We assume increment == 1 and delta * 120 == integer means we have
V120 events in units of 1/120.

Fixes #9770
2026-03-29 14:43:48 +05:30
Kovid Goyal
9e79d3be9c Merge branch 'feat-draggable-window-title-bars' of https://github.com/mcrmck/kitty 2026-03-28 10:02:14 +05:30
copilot-swe-agent[bot]
efe319f755 Send synthetic left button release after drag ends to fix stale mouse state
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/e3cf07a9-b3c0-4786-b264-a83b85f098ac
2026-03-26 14:16:44 +00:00
copilot-swe-agent[bot]
215bbf68de Fix spurious mouse release event during drag out of OS window
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/f4f7b9e7-102b-4af7-aa03-4fb7a85d6ed0
2026-03-26 14:00:57 +00:00
zhaolei
e78b7b1a99 Align drag thumbnail to cursor on macOS 2026-03-24 14:42:04 +08:00
copilot-swe-agent[bot]
6b86e7db5d Extend glfwGetKeyboardRepeatDelay() to return both initial delay and repeat interval
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/bde9bf2e-a0dd-4ccd-8385-6a37be1e025f
2026-03-23 11:58:48 +00:00
copilot-swe-agent[bot]
998ee22ecb Add glfwGetKeyboardRepeatDelay() to the GLFW API for X11, Wayland and Cocoa
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/4765810b-ecf5-4348-ae3a-ff0ff481aaae
2026-03-23 11:46:35 +00:00
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
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
3a30c47942 Get drop status updates working 2026-03-21 08:41:47 +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
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
mcrmck
462f7025fb Merge upstream/master into feat-draggable-window-title-bars
Resolves conflict in kitty/tabs.py by keeping both force_show_title_bars
and renaming_in_window fields.
2026-03-17 22:40:28 -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