Commit Graph

1559 Commits

Author SHA1 Message Date
Kovid Goyal
5ba3d10471 X11: Fix a regression that caused some high res scroll devices to be treated as line based scroll devices
Apparently when running under XWayland, we cant rely on libinput to
detect highres scroll devices. Sigh. Linux input is such a disaster.
Dunno if this will break something else, hopefully not.

Fixes #9649
2026-03-12 19:23:41 +05:30
copilot-swe-agent[bot]
4706243380 Fix GLFW drop API to always present full original MIME type list to callbacks
Fixes #9633
2026-03-10 20:10:44 +05:30
mcrmck
59c963c481 Add draggable window title bars
Implements drag-to-reorder for window title bars, following up on the
merged window title bar feature (#9450) and the design discussion in #9619.

- Drag a title bar and drop on another title bar to swap positions
- Drop on a window body quadrant (left/right/top/bottom) to insert as
  a directional split; Splits layout uses insert_window_next_to(), other
  layouts fall back to move_window_to_group()
- Drop on a tab bar tab to move the window into that tab
- Drop on another OS window to move into its active tab
- Drop outside kitty to detach into a new OS window
- Tab bar highlights the hovered tab during a window drag, mirroring
  how the destination window title bar is highlighted
- toggle_window_title_bars action temporarily force-shows title bars
  for drag-to-reorder when they are normally hidden, auto-hiding after
  the drag completes
- window_title_bar_drag_threshold option (default 5px) controls how far
  the mouse must move before a drag is initiated; 0 disables dragging

MIME type follows the same convention as tab dragging:
application/net.kovidgoyal.kitty-window-{PID}

Ref: #9619
2026-03-08 20:56:38 -04:00
Kovid Goyal
5c2b088895 Merge branch 'fix/split-view-fullscreen-crash' of https://github.com/AndrewP-GH/kitty 2026-03-01 10:59:41 +05:30
Kovid Goyal
04c35d85da Merge branch 'fix-accessibility-window-management' of https://github.com/alexasa79/kitty 2026-03-01 10:26:20 +05:30
Sasha Sandler
2c89a7dedf Allow accessibility selectors needed for external window management tools
Tools like Easy Move+Resize use the macOS Accessibility API to find and
move/resize windows. They call AXUIElementCopyElementAtPosition to get the
content view, then use kAXWindowAttribute to navigate to the parent window.

The isAccessibilitySelectorAllowed: whitelist was blocking these selectors,
preventing external window management tools (Easy Move+Resize) from working with
kitty.

Fixes #5561
2026-02-28 22:22:38 -05:00
Andrey Paramonov
21c2e585cf Refactor fullscreen exit handling to ensure frame constraint suppression is lifted consistently after a delay 2026-02-28 20:21:59 +03:00
Andrey Paramonov
72de57b5e5 Enhance fullscreen transition handling on macOS by adding frame constraint suppression 2026-02-28 19:59:43 +03:00
Andrey Paramonov
6d33cea816 Fix fullscreen handling for macOS Split View to prevent crashes 2026-02-28 17:56:19 +03:00
Kovid Goyal
7500c58e1c Fix #9569 2026-02-28 16:54:02 +05:30
zhaolei
31b4614c87 fix crash when macos_titlebar_color=background with transparent background 2026-02-24 18:06:53 +08:00
Kovid Goyal
5cc510dea4 Merge branch 'titlebar-only-wayland' of https://github.com/antoinecellerier/kitty 2026-02-23 19:19:30 +05:30
Kovid Goyal
1df89d9448 Cleanup previous PR
Fixes #9463
2026-02-23 07:44:58 +05:30
Kovid Goyal
1f5b11be0b Merge branch 'fix-sleep-macos' of https://github.com/jorgemmsilva/kitty 2026-02-23 07:27:58 +05:30
Kovid Goyal
f0d11f7223 ... 2026-02-22 16:48:59 +05:30
Kovid Goyal
9f2a4ad2dd Wayland: Implement ridiculous workaround for broken dnd
Wayland is *the worst* window system I have ever had the
displeasure of trying to support.
2026-02-22 16:24:46 +05:30
Kovid Goyal
322a51da98 ... 2026-02-22 15:44:28 +05:30
Kovid Goyal
b737eaad65 Cleanup previous PR
Use a single wl_surface for the drag icon. Whther it is attached to the
top level drag or not is determined based on availability.
2026-02-22 15:36:10 +05:30
copilot-swe-agent[bot]
accee908aa Implement Wayland xdg-toplevel-drag protocol for make_toplevel in _glfwPlatformChangeDragImage
Fixes #9544
2026-02-22 14:53:34 +05:30
Kovid Goyal
ca43d57cdf Fix enumeration of pasteboard items in the source 2026-02-22 13:32:55 +05:30
Kovid Goyal
531fb3e1b1 Change drag thumbnail when in detach/move modes 2026-02-22 13:09:56 +05:30
Kovid Goyal
449abb69bc Cleanup previous PR 2026-02-22 11:13:57 +05:30
copilot-swe-agent[bot]
0c0c5a62f7 Implement changing drag image in the various backends
Fixes #9542
2026-02-22 09:26:14 +05:30
Kovid Goyal
6506ce1e91 API to change image for drag in progress 2026-02-22 09:10:26 +05:30
Kovid Goyal
8ad22e7859 On Wayland detach even on drag cancel
Wayland compositors contravene their own spec and make it impossible to
distinguish between drop-but-not-accept and drag-cancel cases.
https://gitlab.freedesktop.org/wayland/wayland/-/issues/140
2026-02-22 08:19:31 +05:30
Kovid Goyal
eb23c18821 Dont detach when user presses esc to cancel drag and there is no drop 2026-02-22 07:42:42 +05:30
Kovid Goyal
0f10380773 Cocoa backend: distinguish between cancelling drop by esc key/dragging to trash and dropping in unsupported place 2026-02-22 07:34:27 +05:30
copilot-swe-agent[bot]
56a9dd1bb7 Place drag icon below cursor on macOS
Fixes #9539
2026-02-21 22:06:49 +05:30
copilot-swe-agent[bot]
bcba8fc04c Wayland: Add support for ext-background-effects
Fixes #9536
Fixes #9534
2026-02-21 20:56:40 +05:30
Kovid Goyal
dea3ad5eed API for registering MIME types for drag enter 2026-02-21 17:25:25 +05:30
Kovid Goyal
57e7dc2cdc Add some more common types 2026-02-21 17:25:03 +05:30
Kovid Goyal
7efba91ffc Register UTI for tab drag mime on Cocoa 2026-02-21 16:59:58 +05:30
Kovid Goyal
aab60b7967 Fix mime <-> UTI roundtripping 2026-02-21 16:37:04 +05:30
Kovid Goyal
96c01b74d8 Detach tab via drag and drop now implemented 2026-02-21 15:15:33 +05:30
copilot-swe-agent[bot]
0dfb01e8c5 Implement X11 drag source backend for the new API
Fixes #9522
2026-02-18 16:55:52 +05:30
Kovid Goyal
3cd2aa6a2f Add some docs for the drag source API 2026-02-18 16:05:27 +05:30
Kovid Goyal
a2b7a0cd6d Port Cocoa drag source backend to new API 2026-02-18 11:20:17 +05:30
Jorge Silva
adc97bc117 fix blank screen on macOS resume from sleep 2026-02-17 17:56:14 +00:00
Kovid Goyal
e5eb63fcd0 Refactor drag source API to be async
Wayland implementation done. Other two backends remain.
2026-02-17 13:07:55 +05:30
Kovid Goyal
76a29273c8 Dont send non-finger based zero size scroll events on Wayland 2026-02-17 11:23:49 +05:30
Kovid Goyal
a99103d9a1 Drop events should use same co-ordinate system as mouse events 2026-02-13 10:08:25 +05:30
Kovid Goyal
34ffc6cdce X11: port drop code to new API 2026-02-09 07:54:40 +05:30
Antoine Cellerier
ef4574ae97 Support hide_window_decorations titlebar-only on Wayland
Hide the CSD titlebar subsurface while keeping shadow borders for
resizing. On SSD compositors (GNOME), forces CSD mode to draw
kitty's own shadows without a titlebar.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-08 19:49:44 +01:00
Kovid Goyal
ff70e2e3ab Dont hardcode mimetype to extension mappings 2026-02-08 22:05:15 +05:30
Kovid Goyal
08217c949d Fix crash on self drop 2026-02-08 22:05:15 +05:30
Kovid Goyal
625e3b5d1c Notes for X11 backend refactor 2026-02-08 22:05:14 +05:30
Kovid Goyal
a80d742449 Port cocoa backend drop code to the new API 2026-02-08 22:05:14 +05:30
Kovid Goyal
af4f3969b7 remove watch after all data is received on pipe 2026-02-08 22:05:14 +05:30
Kovid Goyal
5db41c7ba4 Remove remaining code for the old drop API
X11 and cocoa need to be ported to the new API
2026-02-08 22:05:14 +05:30
Kovid Goyal
f3cda7e828 Have mimes_count be always accurate 2026-02-08 22:05:14 +05:30