5828 Commits

Author SHA1 Message Date
Mitchell Hashimoto
357ad43656 app: deinit darwin info 2022-11-16 21:20:04 -08:00
Mitchell Hashimoto
b4d5901225 update some docs 2022-11-16 21:18:37 -08:00
Mitchell Hashimoto
8ac90d33e6 new_tab action 2022-11-16 21:17:41 -08:00
Mitchell Hashimoto
c6f7eab601 hide tab bar if last window is destroyed 2022-11-16 21:04:55 -08:00
Mitchell Hashimoto
bb90104de3 enable Mac native tabbing 2022-11-16 21:04:54 -08:00
Mitchell Hashimoto
465b4df6ea fix tests for WNOHANG commit 2022-11-16 21:04:31 -08:00
Mitchell Hashimoto
d567a976b4 waitpid should specify WNOHANG
If the child process our terminal is executing behaves poorly and
doesn't waitpid all of its own children, then we can hang the full
terminal. This is not ideal, so specify WNOHANG.
2022-11-16 20:54:17 -08:00
Mitchell Hashimoto
8eb97cd9ad Option (def true) to inherit font size on new window 2022-11-16 09:51:59 -08:00
Mitchell Hashimoto
69fdd57aa3 screen: support scroll region scrolling with circular buffer wraparound 2022-11-16 09:28:56 -08:00
Mitchell Hashimoto
371a7f79cb coretext: implement resizing 2022-11-15 20:29:58 -08:00
Mitchell Hashimoto
7e24faac72 metal: implement font size changing 2022-11-15 20:18:39 -08:00
Mitchell Hashimoto
dad4923901 hook up all the keyboard actions 2022-11-15 20:10:50 -08:00
Mitchell Hashimoto
3ce554462a window cell size event for changing cell size 2022-11-15 19:54:05 -08:00
Mitchell Hashimoto
657c8540c8 renderer: font size changed event, OpenGL impl 2022-11-15 19:48:32 -08:00
Mitchell Hashimoto
6ec5684c27 window caches all sizing so it doesn't depend on renderer state 2022-11-15 19:30:15 -08:00
Mitchell Hashimoto
6218792710 font: GroupCache supports resize 2022-11-15 15:54:57 -08:00
Mitchell Hashimoto
24167d0d59 font: Group supports resize 2022-11-15 15:48:52 -08:00
Mitchell Hashimoto
d759c7fb25 font: freetype face supports resize 2022-11-15 15:37:16 -08:00
Mitchell Hashimoto
1c4552de3b font: freetype eliminate some duplicated work on init 2022-11-15 15:23:28 -08:00
Mitchell Hashimoto
e24dabd67a extract out message data from termio
This will be used for other mailboxes, for example this is required for
sending the window title to the app thread. Right now we hardcode an
array size but we can do better than that.
2022-11-15 13:41:11 -08:00
Mitchell Hashimoto
78fbf9cb06 remove stage1 workarounds 2022-11-15 13:19:01 -08:00
Mitchell Hashimoto
4727fa9b7b move opengl to renderer dir 2022-11-15 13:12:30 -08:00
Mitchell Hashimoto
18de7cd2ef Move shaders into the renderer dir 2022-11-15 13:10:43 -08:00
Mitchell Hashimoto
334743e8a7 Don't crash on huge padding, warn users if padding is absurd 2022-11-14 17:41:15 -08:00
Mitchell Hashimoto
e6c7fd0214 metal: understand explicit padding 2022-11-14 17:35:10 -08:00
Mitchell Hashimoto
860fbc3aee padding needs to be sent to termio 2022-11-14 17:25:35 -08:00
Mitchell Hashimoto
d7d12d9469 explicit padding works 2022-11-14 17:13:56 -08:00
Mitchell Hashimoto
c515cb9b5f initial padding options 2022-11-14 16:19:20 -08:00
Mitchell Hashimoto
184b43ebd6 opengl: padding is done via ortho matrix rather than viewport 2022-11-14 13:13:50 -08:00
Mitchell Hashimoto
4cab24a3da extract auto-padding code to shared logic 2022-11-14 13:10:12 -08:00
Mitchell Hashimoto
024cd65ac8 metal: implement auto padding 2022-11-14 12:37:29 -08:00
Mitchell Hashimoto
f73753ac6f opengl: automatically pad render area to balance non-grid space 2022-11-14 12:24:38 -08:00
Mitchell Hashimoto
4ced2290b3 OSC handling, handle OSC change window title command 2022-11-14 10:46:40 -08:00
Mitchell Hashimoto
56504a342f better commenting 2022-11-14 10:03:39 -08:00
Mitchell Hashimoto
20cbee5370 locale always requires libc 2022-11-14 10:02:48 -08:00
Mitchell Hashimoto
ad203db6e4 set COLORTERM -- macOS uses this for emoji 2022-11-14 10:00:38 -08:00
Mitchell Hashimoto
f39484541f set system locale on startup, read Mac locale from OS preferences 2022-11-14 09:59:22 -08:00
Mitchell Hashimoto
99224ae2c0 implement CSI ESC [ <n> b for repeating previously printed char 2022-11-13 22:07:40 -08:00
Mitchell Hashimoto
feccd550c3 implement many more reset sgr attributes 2022-11-13 21:54:26 -08:00
Mitchell Hashimoto
23e7b8d63e The cursor should be reset on entering the alt screen 2022-11-13 21:43:59 -08:00
Mitchell Hashimoto
019f1e34bb metal: copy screen data (see opengl commit for why) 2022-11-13 17:29:23 -08:00
Mitchell Hashimoto
3fcdd9a196 fix outdated test 2022-11-13 16:25:50 -08:00
Mitchell Hashimoto
333ff1e634 opengl: handle screen resize outside of critical area 2022-11-13 16:19:38 -08:00
Mitchell Hashimoto
f1c69343d3 opengl: copy screen data instead of sharing state
Through benchmarking I've determined this lowers lock contention by
about 50% on the critical data.
2022-11-13 16:16:08 -08:00
Mitchell Hashimoto
81fbc94b3c Add a benchmark exe for testing parser throughput 2022-11-13 11:29:05 -08:00
Mitchell Hashimoto
445ca8998f cli args without arena 2022-11-13 11:21:12 -08:00
Mitchell Hashimoto
ce85d9a2cd add more tracing, unroll a loop 2022-11-08 19:15:14 -08:00
Mitchell Hashimoto
d1718e6cbf use libc memcpy/memmove instead of std.mem if available 2022-11-08 19:01:45 -08:00
Mitchell Hashimoto
a471eaf980 drop a couple function calls and optimize scrolling a bit 2022-11-08 18:35:19 -08:00
Mitchell Hashimoto
306ab947e7 implement region scrolling directly in screen to use memcpy
This doubles scroll region scrolling speed.
2022-11-08 17:35:15 -08:00