Fixes#9663: visible gray/black bars appear at the left and right
sides of the tab bar when background_opacity is set and the window width
is not a multiple of the cell width.
Three fixes in update_blank_rects:
1. Fix off-by-one: use g.right instead of g.right-1 for the right blank
rect start position. The old code caused a 1-pixel overlap with tab
content and spuriously added a right blank rect even for
perfectly-aligned windows.
2. Fix blank rect colors: only use tab_bar_left/right_edge_color when
tab_bar_margin_width > 0 (explicit configured margin). When
margin_width=0 (default), use default_bg which blends with the window
background instead of showing a solid tab-colored bar.
3. Fix inner margin BOTTOM_EDGE height: use tab_bar.top instead of vh
so the inner margin blank rect covers only the inner margin area.
Fixes#9664
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
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
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.