Mitchell Hashimoto
1a22bc7f3b
terminal: if cloned screen is subset of selection, select full screen
...
Fixes #1859
2024-06-25 09:45:36 -07:00
Mitchell Hashimoto
b62806360b
terminal: add test for pagelist to clear styles
2024-06-24 20:58:11 -07:00
Mitchell Hashimoto
368960d76a
use +% for overflow
2024-06-24 20:37:11 -07:00
Mitchell Hashimoto
44c75931b4
terminal: ref counted set count is const
2024-06-24 20:33:28 -07:00
Qwerasd
93b038f490
fix(RefCountedSet): add NeedsRehash error and fix PSL counting bug
...
Prevent bad input from causing repeated OutOfMemory errors by erroring
with NeedsRehash instead when there are unused dead IDs available.
Additionally, properly decrement PSL stats when reviving dead IDs.
2024-06-24 20:32:22 -07:00
Qwerasd
35793ee7cc
page integrity checks: detect zombie styles
2024-06-24 20:32:22 -07:00
Qwerasd
6f732cca55
RefCountedSet: use usize for cap to allow up to max Id
+1
2024-06-24 20:32:22 -07:00
Qwerasd
a7e6f1a070
fix(terminal/PageList): clear cells in truncated rows during clone
...
Previously this was a memory leak, styles and graphemes in these rows
were never reclaimed.
2024-06-24 20:32:21 -07:00
Mitchell Hashimoto
cb76fe6634
fix linux builds
2024-06-24 15:16:24 -07:00
Gordon Cassie
c967a35abb
Fix some basic build errors.
2024-06-24 15:16:24 -07:00
Mitchell Hashimoto
53423f1071
0.13 conversions
2024-06-24 15:16:24 -07:00
Mitchell Hashimoto
d019bacb18
terminal: RefCountedSize should use usize for byte math
...
Related to #1873
2024-06-24 10:39:55 -07:00
Peter Cardenas
2cd4732cee
🔧 more lenient file matching for ghostty config
2024-06-23 14:29:09 -07:00
Mitchell Hashimoto
af132a3838
Merge pull request #1872 from qwerasd205/various-performance
...
Various Performance Changes
2024-06-23 09:51:21 -07:00
Mitchell Hashimoto
eebc7d4c3a
small stylistic changes
2024-06-23 09:44:54 -07:00
Mitchell Hashimoto
3b36dbb53e
font/coretext: cached fonts uses unmanaged arraylist
2024-06-22 20:56:23 -07:00
Mitchell Hashimoto
2607446235
font: add noop endFrame calls to all other shapers
2024-06-22 20:49:10 -07:00
Mitchell Hashimoto
9271fd50b6
cache_table and ref_counted_set work on 32-bit machines
2024-06-22 20:45:30 -07:00
Mitchell Hashimoto
71353d016e
coretext shaper owns CFReleaseThread, works on both Metal and OpenGL now
2024-06-22 20:42:59 -07:00
Mitchell Hashimoto
4325dc51bc
font: coretext shaper owns the cf release pool
2024-06-22 20:32:24 -07:00
Mitchell Hashimoto
3038cb4979
Move CFReleaseThread to os package
2024-06-22 20:15:59 -07:00
Mitchell Hashimoto
4aa130b0d1
CacheTable tests, style changes
2024-06-22 20:08:02 -07:00
Mitchell Hashimoto
6f43c01b76
renderer/opengl: invert cursor cell text when glyph is constrained
...
Fixes #1867
2024-06-18 14:59:49 -07:00
Mitchell Hashimoto
50019bc766
minor comment changes
2024-06-18 17:09:29 -04:00
Qwerasd
3f3db4896b
add CFReleasePool handling to OpenGL renderer
2024-06-14 02:07:17 -04:00
Qwerasd
053500da38
shaper/coretext: update tests
2024-06-14 01:57:46 -04:00
Qwerasd
626ec2b5ac
perf: introduce CFReleaseThread for running CoreFoundation releases
...
Some CoreFoundation objects, such as those produced by CoreText, have
expensive callbacks that run when they are released. By offloading the
CFRelease calls to another thread, we can avoid important threads being
blocked by unexpectedly expensive callbacks.
This commit also changes the way that the coretext shaper's run iterator
builds its string. Rather than using a CFMutableString, an ArrayList of
unichars is built which is passed to CFStringCreateWithCharactersNoCopy,
which is a lot more efficient since it avoids all the CoreFoundation
overhead.
2024-06-14 01:43:02 -04:00
Qwerasd
04896a14b4
perf(shaper/coretext): cache fonts between shape calls
2024-06-14 00:14:53 -04:00
Qwerasd
9741b3a18c
perf: introduce RefCountedSet structure, use it for Style.Set
2024-06-13 22:59:03 -04:00
Cameron Dart
406d494e1d
feat(gtk): focus follows mouse
2024-06-13 00:59:38 +00:00
Cameron Dart
fd786219d1
feat: focus-follows-mouse
2024-06-10 13:11:53 -07:00
Qwerasd
8d76b5f283
perf: introduce CacheTable strcture, use it for shaper cache
2024-06-10 13:58:35 -04:00
Qwerasd
db2cefb668
misc: improve rebuildCells time logging
2024-06-10 12:20:49 -04:00
Mitchell Hashimoto
279921b936
terminal: reject invalid DECSASD status code
2024-06-09 21:22:37 -04:00
Mitchell Hashimoto
e2b4ee99e5
terminal: add easy debug mode for stream debugging
2024-06-09 21:22:23 -04:00
Mitchell Hashimoto
c69dc0e0e1
migrate termio.Options.LinuxCgroup to Command
2024-06-08 19:10:19 -07:00
Mitchell Hashimoto
508922efd0
Merge pull request #1848 from jcollie/clone_into_cgroup
...
Use clone3 / CLONE_INTO_CGROUP on Linux
2024-06-08 19:09:19 -07:00
Mitchell Hashimoto
6ae6e3ba11
remove unused var
2024-06-08 19:08:05 -07:00
Mitchell Hashimoto
8f9cdff1f5
small stylistic tweaks
2024-06-08 19:07:10 -07:00
Mitchell Hashimoto
e2772eacec
Merge pull request #1846 from kdrag0n/buffered-scrollback-file
...
scrollback: buffer writes to scrollback file
2024-06-08 14:56:13 -07:00
Mitchell Hashimoto
fb7cbd69c0
core: consider any paste with bracketed paste closer unsafe
...
Thanks to: https://thejh.net/misc/website-terminal-copy-paste
If a paste has the ending sentinel value for a bracketed paste
("\x1b[201~") then the shell may start processing data faster. We now
consider this unsafe even if the `clipboard-paste-bracketed-safe`
setting is true.
2024-06-08 14:38:49 -07:00
Jeffrey C. Ollie
af9efd4d93
use consistent type for pid
2024-06-08 07:43:44 -06:00
Jeffrey C. Ollie
e6f97c28f8
Use clone3 / CLONE_INTO_CGROUP on Linux
...
Use clone3 / CLONE_INTO_CGROUP to have the Linux kernel create the process in the
correct cgroup rather than move the process into the cgroup after it is created.
2024-06-07 23:48:03 -06:00
Danny Lin
197b873dee
scrollback: buffer writes to scrollback file
...
Screen.dumpString writes one character at a time, so buffer writes to
the scrollback file to speed it up.
2024-06-07 20:52:08 -07:00
Mitchell Hashimoto
919b00571a
font: preload deferred faces in SharedGrid to avoid data races
...
Fixes #1722
Previously, SharedGrid.getIndex would properly lock any access to search
for and load the face metadata for a font face that contains a
codepoint. However, that face may be "deferred" (metadata loaded but the
actual face not loaded).
Later, outside of the SharedGrid write lock, a deferred face may be
initialized and cause a data race if two threads are doing this at the
same time, sometimes loading to a crash.
This commit fixes the issue by always preloading font indexes in
getIndex because the usage of getIndex implies a very near term future
use of getFace.
2024-06-07 20:35:01 -07:00
Mitchell Hashimoto
0d94fb61c9
terminal: all cursor movement needs to mark the old and new page dirty
2024-06-07 15:03:02 -07:00
Mitchell Hashimoto
c2b0bb6395
terminal: mark old/new rows as dirty when moving the cursor absolute
2024-06-07 14:55:02 -07:00
Mitchell Hashimoto
5092cb55ad
Merge pull request #1837 from ghostty-org/titlebar-style
...
macos: macos-titlebar-style, remove titlebar-tabs option
2024-06-07 13:15:14 -07:00
Mitchell Hashimoto
550a9be241
config: introduce macos-window-shadow
2024-06-07 12:46:14 -07:00
Mitchell Hashimoto
25484d2ccc
macos: set background opacity/blur on window controller not surface
2024-06-07 12:31:45 -07:00