7430 Commits

Author SHA1 Message Date
Qwerasd
7a1d304fa9 font: further improve ul/st position calculations 2024-09-23 22:10:43 -06:00
Qwerasd
49a3008919 font/sprite: reduce uneven gaps in dotted underline 2024-09-23 20:08:57 -06:00
Qwerasd
c7d6227bef freetype: improve strikethrough position guess by using ex height 2024-09-23 19:18:44 -06:00
Qwerasd
3ec36e4d23 coretext: improve strikethrough position calculation 2024-09-23 19:01:15 -06:00
Qwerasd
ecb3c543b3 renderer/OpenGL: use better logic for whether to render glyph
Metal already had this change made, so I copied it over from there. This
logic is more straightforward. Also copied the check to skip 0-sized
glyphs, since sometimes, for example, spaces are emitted as glyphs by
the shaper for some reason, even though they have no actual content, and
we want to avoid sending a bunch of useless stuff to the GPU.
2024-09-23 18:35:20 -06:00
Qwerasd
bf2794f90f renderer: draw underlines below text to improve legibility 2024-09-23 18:31:39 -06:00
Qwerasd
b3a7901b79 font/sprite: rework underline rendering, adjust positioning 2024-09-23 18:22:11 -06:00
Qwerasd
6917bcacad font/sprite: fix 1px gap at right edge of dotted and dashed underlines 2024-09-23 18:13:46 -06:00
Mitchell Hashimoto
8f6ecaa4f0 Merge pull request #2290 from ghostty-org/push-tlrkmpvyqvut
update libxev
2024-09-23 09:34:35 -07:00
Mitchell Hashimoto
c91c5164ff update libxev
This fixes the issue where a write could be interrupted and not retried.
2024-09-23 09:30:57 -07:00
Mitchell Hashimoto
70eb5b7485 Merge pull request #2288 from Pangoraw/tabs-gtk
apprt/gtk: set tabs reorderable/detachable on GtkNotebook
2024-09-23 06:31:10 -07:00
Paul Berg
2033e59240 apprt/gtk: set tabs reorderable/detachable on GtkNotebook 2024-09-23 10:16:10 +02:00
Mitchell Hashimoto
599934d5de Merge pull request #2287 from ghostty-org/minidump
Minidump Parser
2024-09-22 14:12:12 -07:00
Mitchell Hashimoto
9178d1cf38 crash/minidump: locationReader to read locations in a minidump 2024-09-22 14:06:59 -07:00
Mitchell Hashimoto
5b1d729748 crash/minidump: handle padding in the ThreadList stream 2024-09-22 14:06:59 -07:00
Mitchell Hashimoto
df629044fa crash/minidump: working on rich stream type decoding, ThreadList 2024-09-22 14:06:59 -07:00
Mitchell Hashimoto
c0719fceef crash/minidump: typos 2024-09-22 14:06:59 -07:00
Mitchell Hashimoto
ca1ab7bcdc crash/minidump: streamIterator 2024-09-22 14:06:59 -07:00
Mitchell Hashimoto
facbabfd2c crash/minidump: StreamReader 2024-09-22 14:06:58 -07:00
Mitchell Hashimoto
b8ec91242f crash/minidump: reader that streams data from a source 2024-09-22 14:06:58 -07:00
Mitchell Hashimoto
3cc18b62e7 crash/minidump: split out into multiple files 2024-09-22 14:06:58 -07:00
Mitchell Hashimoto
ae8859bc7b crash/minidump: read the streams from the minidump file 2024-09-22 14:06:58 -07:00
Mitchell Hashimoto
5a2bbe9a08 crash/minidump: header parsing 2024-09-22 14:06:58 -07:00
Mitchell Hashimoto
826ba6e46e Merge pull request #2286 from ghostty-org/push-uknuvwouqqnu
macos: enable dead code stripping
2024-09-22 11:05:45 -07:00
Mitchell Hashimoto
ce73917325 Merge pull request #2285 from ghostty-org/push-lwxwvlyootok
macos: cannot call mouseEntered/Exited with blank NSEvent
2024-09-22 10:28:07 -07:00
Mitchell Hashimoto
554dd6ff95 macos: enable dead code stripping
This is a recommended Xcode setting, the binary _seems_ to run fine.
It eliminates a warning from builds and reduces the binary size.
2024-09-22 10:21:51 -07:00
Mitchell Hashimoto
c63af5efaa macos: cannot call mouseEntered/Exited with blank NSEvent
Fixes #2283

macOS <= 14 crash with an invalid NSEvent error. macOS 15 seems to just
ignore the blank event. We just got lucky with this. Since we don't
override mouseEntered/Exited anymore we can remove this completely.

The regression was from: e89a4f74089b66c00043096589dc75fff5ab6674
2024-09-22 10:17:45 -07:00
Mitchell Hashimoto
6607ffa7f4 Merge pull request #2280 from iceghost/vtebench-fix
fix(terminal/PageList): ensure enough pages before first page reuse
2024-09-21 21:09:53 -07:00
Mitchell Hashimoto
f858ae13ae terminal: clarify comment 2024-09-21 21:05:46 -07:00
Mitchell Hashimoto
f0eb5d0d43 terminal: test for scenario where grow() has to prune with a single page
See comments in the test, also this:

> The scenario is if you adjustCapacity a page beyond a std_size then our
> precondition no longer holds. PageList.adjustCapacity makes no guarantee
> that the resulting capacity fits within a standard page size. It is in fact
> documented this way and that it is slow since we have to mmap out of our
> memory pool.
2024-09-21 21:05:01 -07:00
Mitchell Hashimoto
204212afcf Merge pull request #2282 from ghostty-org/movemods
apprt/macos,gtk: unfocused splits now highlight hovered links
2024-09-21 15:28:05 -07:00
Mitchell Hashimoto
261ce00552 apprt/macos,gtk: unfocused splits now highlight hovered links
Fixes #1547

The core change to make this work is to make the cursor position
callback support taking updated modifiers. On both macOS and GTK, cursor
position events also provide the pressed modifiers so we can pass those
in.
2024-09-21 15:16:14 -07:00
Mitchell Hashimoto
fb6cd7a8fa Merge pull request #2281 from ghostty-org/pointer
macOS: Use macOS 15 APIs to stabilize cursor hide while typing
2024-09-21 14:40:55 -07:00
Mitchell Hashimoto
d090384600 macos: fix non-AppKit builds 2024-09-21 10:22:14 -07:00
Mitchell Hashimoto
3769c83bdf config: note that mouse hide while typing on macos requires 15+ 2024-09-21 10:03:57 -07:00
Mitchell Hashimoto
7f56ea150d typos 2024-09-21 10:00:32 -07:00
Mitchell Hashimoto
f9bd009ce5 macos: unhide cursor on clipboard confirmation 2024-09-21 09:59:40 -07:00
Khang Nguyen Duy
d5ab772b66 fix(terminal/PageList): ensure enough pages before first page reuse
Running alacritty/vtebench on some machines causes Ghostty to fail on
`assert(first != last)` when trying to grow scrollback. We now make sure
we have enough pages before trying to reuse pages.
2024-09-21 22:03:06 +07:00
Mitchell Hashimoto
c01bdc6d7c macos: use pointerStyle for SplitView Divider 2024-09-20 22:02:21 -07:00
Mitchell Hashimoto
0e1258b7fe macos: pointer style uses macOS 15 helpers 2024-09-20 22:02:21 -07:00
Mitchell Hashimoto
e89a4f7408 macos: use macOS 15 pointerVisibility to show/hide cursor 2024-09-20 22:02:20 -07:00
Mitchell Hashimoto
c6bbdfb7bf macos: remove EventSinkHostingView
This was breaking various other features:

  - Popovers stopped working
  - Split divider drag gestures stopped working

For now we document the top part of the window is draggable... we
can look into removing that limitation later.
2024-09-20 22:01:01 -07:00
Mitchell Hashimoto
2c44e20860 macos: EventSinkHostingView must not override mouse events
This breaks split resizing. Removing this doesn't seem to have negative
effects for hidden titlebars (which it was originally made for).
2024-09-20 21:40:30 -07:00
Mitchell Hashimoto
44e39326b3 Merge pull request #2276 from qwerasd205/macos-titlebar-hidden
macOS: add `macos-titlebar-style = hidden`
2024-09-20 20:50:27 -07:00
Mitchell Hashimoto
578aaa1ba6 macos: DraggableWindowView helper (unused currently) 2024-09-20 20:45:27 -07:00
Mitchell Hashimoto
962aa49a45 macos: remove nstitlecontainerview hidden 2024-09-20 19:18:01 -07:00
Mitchell Hashimoto
5af3d8470a Merge pull request #2277 from ghostty-org/kill
termio: killpg expected to fail on darwin, still go into waitpid loop
2024-09-20 18:58:57 -07:00
Mitchell Hashimoto
f8bdd2b1bb termio: killpg expected to fail on darwin, still go into waitpid loop
Fixes #2273

On macOS, killpg is expected to fail with EPERM because of the way we
launch a login process around it. Before this commit, this caused us to
never call waitpid and reap the child process, which caused the child
process to stick around as a zombie.

This commit allows killpg to fail with EPERM on macOS and fall through
to waitpid.
2024-09-20 15:29:06 -07:00
Qwerasd
ae46ff6854 mention macos-titlebar-style = hidden in window-decoration docs 2024-09-20 16:18:42 -06:00
Qwerasd
16919488da macOS: add macos-titlebar-style = hidden
Hides titlebar without removing the other typical window frame elements
2024-09-20 16:11:51 -06:00