ctypes in Python 3.14 is broken on Intel macs. It uses libffi which is
broken on Intel macs without extra security entitlements. At least
com.apple.security.cs.allow-unsigned-executable-memory and possibly
com.apple.security.cs.disable-executable-page-protection
Rather than add these entitlements, we simply do not import ctypes as it
is not actually used on macs anyway.
Fixes#9643
The dock badge set by macos_dock_badge_on_bell is currently only
cleared when the app transitions from inactive to active via
NSApplicationDidBecomeActiveNotification. This means if a bell
occurs while kitty is already the active app (e.g. in a background
tmux pane or non-focused kitty tab), the badge persists until the
user switches away and back.
Clear the badge on any user interaction (keypress or mouse click)
so it is dismissed as soon as the user engages with kitty, regardless
of whether kitty was already active.
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