Files
ghostty/macos/Sources
Mitchell Hashimoto 962a060c86 macOS: fix title bar clipping custom font (#14217)
Fixes https://github.com/ghostty-org/ghostty/issues/14135.

<img width="1398" height="652" alt="image"
src="https://github.com/user-attachments/assets/6901a05e-9d23-4e25-89a7-c16c1694a0f9"
/>


> The #9168 fix is no longer needed, since the frame is now higher than
the actual glyph.

The frame change observation only affects those who have a custom window
title font set in their config. I asked Claude to run some main thread
benchmarking compared to `main`; it will gain some delays for rapid
title changes and window resizing. The additional cost is brought by the
frequent frame updates which are done by AppKit. But that's necessary
for updating the title to the correct style.

> I tried to do some diffing and removing duplicates, but it will add
too many changes too, and I didn't think it's worth doing so.

The amount looks ok to me.

### `window-title-font-family = PT Mono`

| Phase | Metric | base | branch | Δ | ratio |
|---|---|---:|---:|---:|---:|
| Idle, 3 s | main-thread CPU | 2.8 ms | 2.8 ms | -0.0 | 1.00 |
|  | process CPU | 11.3 ms | 11.2 ms | -0.1 | 0.99 |
| Paced title updates, 150 × 100 ms | main-thread CPU | 878.5 ms |
**946.7 ms** | **+68.3** | **1.08** |
|  | process CPU | 1219.9 ms | 1335.0 ms | +115.1 | 1.09 |
|  | wall | 17.24 s | 17.34 s | +0.1 | 1.01 |
| Title burst, 5000 back-to-back | main-thread CPU | 180.7 ms | 181.4 ms
| +0.7 | 1.00 |
|  | process CPU | 254.2 ms | 254.8 ms | +0.6 | 1.00 |
|  | wall | 2.31 s | 2.32 s | +0.0 | 1.00 |
| `toggle_maximize` × 16 (animated resize) | main-thread CPU | 1947.8 ms
| **2178.0 ms** | **+230.2** | **1.12** |
|  | process CPU | 4166.8 ms | 4403.2 ms | +236.4 | 1.06 |
|  | wall | 16.68 s | 16.72 s | +0.0 | 1.00 |
| Native fullscreen enter/exit × 2 | main-thread CPU | 196.8 ms | 195.9
ms | -0.9 | 1.00 |
|  | process CPU | 360.8 ms | 361.5 ms | +0.7 | 1.00 |
|  | wall | 8.47 s | 8.47 s | +0.0 | 1.00 |

### AI Disclosure

Asked Claude to generate the harness to run the benchmark and review my
changes. I did the changes myself.
2026-09-14 12:05:47 -07:00
..