1174 Commits

Author SHA1 Message Date
Mitchell Hashimoto
54d6654d8b terminal: selectLine can select last line with scrollback
We had incorrect logic around when the line you want to select is the
last line and it crashed. A new test case covers this.
2023-03-17 11:07:43 -07:00
Mitchell Hashimoto
b0cb46dab9 linux copy/paste defaults to ctrl+shift+c/v 2023-03-16 23:27:21 -07:00
Mitchell Hashimoto
20f9e98894 font/freetype: add a 1px border to each glyph in the texture atlas 2023-03-16 22:54:21 -07:00
Mitchell Hashimoto
0744e504e1 Use proper Linux default keybindings
These are just different from macOS. I've looked at various Linux
terminals and there seems to be some general consensus around this.
2023-03-16 21:59:17 -07:00
Mitchell Hashimoto
53d82d71a4 apprt/gtk: make compatible with GTK < 2.74 2023-03-16 16:38:00 -07:00
Mitchell Hashimoto
58d89b6bb3 apprt/glfw: add logging with error information when glfw init fails 2023-03-12 17:27:33 -07:00
Mitchell Hashimoto
3976da8149 macos: navigate splits directionally 2023-03-11 17:55:31 -08:00
Mitchell Hashimoto
04c38ef3b0 macos: change focus callback to use an enum so we can get other dirs 2023-03-11 17:44:00 -08:00
Mitchell Hashimoto
18cf0dc9fc macos: put next/prev split focus into menu 2023-03-11 17:25:39 -08:00
Mitchell Hashimoto
b582691185 macos: hook up all the bindings so we're ready to handle focus event 2023-03-11 16:22:04 -08:00
Mitchell Hashimoto
f85c1c256c macos: menu bar to split 2023-03-10 15:24:45 -08:00
Mitchell Hashimoto
0aadd19282 macos: close surface works 2023-03-10 14:44:33 -08:00
Mitchell Hashimoto
a265e7ce20 macos: take over menu bar, separate close and close window 2023-03-10 14:27:55 -08:00
Mitchell Hashimoto
dc6e5e1437 macos: fix bug where like... 5 terminals were being launched in the
background
2023-03-09 11:40:47 -08:00
Mitchell Hashimoto
6c857877e8 apprt/embedded: close surface callback 2023-03-08 15:05:15 -08:00
Mitchell Hashimoto
fa9ee0815f apprt/embedded: newSplit callback 2023-03-08 14:56:50 -08:00
Mitchell Hashimoto
8ce6f349f8 input: new_split binding, can parse enums 2023-03-08 08:57:38 -08:00
Mitchell Hashimoto
15b7e7fcd7 termio: coalesce resize events
On macOS, we were seeing resize events dropped by child processes if
too many SIGWNCH events were generated.
2023-03-08 08:43:42 -08:00
Mitchell Hashimoto
b1a7baf394 metal: do not use setPurgeableState on MTLTexture/Buffer
The Metal system automatically will free hardware resources when no
other references exist (I believe) and this causes a crash if you close
a window while a render is in-flight.
2023-03-05 10:00:05 -08:00
Mitchell Hashimoto
0907da4eba build: generate a version number, show in log on startup 2023-03-04 20:34:15 -08:00
Mitchell Hashimoto
cf519bcd75 Use procedurally generated sprites for cursors rather than shaders 2023-03-04 15:14:10 -08:00
Mitchell Hashimoto
25cf4eac43 don't need to set all sprite values in enum 2023-03-04 14:45:34 -08:00
Mitchell Hashimoto
bb48ebc9cb fix wasm build 2023-03-04 14:26:56 -08:00
Mitchell Hashimoto
e882c21c04 disable double/tripclick highlighting if mouse reporting is enabled 2023-03-04 14:24:40 -08:00
Mitchell Hashimoto
d309007ec0 fix mouse position recording for x10 format
I don't know when this broke since I swear this was working before...
2023-03-04 14:17:12 -08:00
Mitchell Hashimoto
06035e2f95 can now use -Dfont-backend to choose the font backend to use 2023-03-04 10:50:13 -08:00
Mitchell Hashimoto
4e31f14f7b renderer: reset font shaper buffer size on font size change 2023-03-03 14:35:26 -08:00
Mitchell Hashimoto
89d07fcd83 clear_history binding, default Cmd+K 2023-03-03 09:27:47 -08:00
Mitchell Hashimoto
7595ccf18f build_config sets runtime to "none" if embedded 2023-03-03 09:09:44 -08:00
Mitchell Hashimoto
2a40bdabca macos: load config file default file locations 2023-03-03 09:01:13 -08:00
Mitchell Hashimoto
d8537732dd config: add functions to load from home and load configured 2023-03-03 08:57:21 -08:00
Mitchell Hashimoto
e775c434fb add log when config file is successfully read 2023-03-02 21:22:37 -08:00
Mitchell Hashimoto
4ececc8923 screen: resize rows should use old cols value 2023-03-02 13:46:58 -08:00
Mitchell Hashimoto
5573df4947 terminal: erase display complete needs to reset row wrap state 2023-03-02 13:20:06 -08:00
Mitchell Hashimoto
e28d20a05d disable the auto balance config by default, add some padding
This makes resizing too jittery which I think is a worse out of the box
experience than the padding.
2023-03-02 12:55:46 -08:00
Mitchell Hashimoto
ba96a2c023 screen: adding cols doesn't mess with the viewport
This was untested anyways, and the result was bugs!
2023-03-01 22:14:19 -08:00
Mitchell Hashimoto
28378a350d screen: shrinking cols trims trailing blank lines 2023-03-01 22:01:42 -08:00
Mitchell Hashimoto
05fe2a83b1 terminal: erase display below should unwrap soft wrapped state 2023-03-01 21:30:31 -08:00
Mitchell Hashimoto
56cb1dd55b screen: correct cursor position with scrollback and less cols 2023-03-01 21:06:33 -08:00
Mitchell Hashimoto
979dc5a439 screen: redo resizing to less columns
This is more performant (prefers fast copies if no wrapping) and keeps
track of the cursor more accurately.
2023-03-01 20:59:35 -08:00
Mitchell Hashimoto
3b586c39c5 screen: grow cols before rows to handle reflow (tested) 2023-03-01 19:45:39 -08:00
Mitchell Hashimoto
74f0e38b57 screen: only trim if we're not wrapping on col growing 2023-03-01 17:42:46 -08:00
Mitchell Hashimoto
9a4a138da0 screen: don't wrap empty-char stylized cells on shrinking cols 2023-03-01 17:34:17 -08:00
Mitchell Hashimoto
31ac3ec7ba screen: when expanding cols, broadcast empty styled cells 2023-03-01 17:24:24 -08:00
Mitchell Hashimoto
89138cf7e3 screen: don't trim blank lines if rows aren't changing 2023-03-01 17:09:57 -08:00
Mitchell Hashimoto
b4d8419feb screen: trim trailing no-character cells when rows is changing
This matches Terminal.app, and makes it so the `ESC [ J` doesn't
generate scrollback on rows change.
2023-03-01 17:07:07 -08:00
Mitchell Hashimoto
d4057522ee screen: resize more rows preserves soft wrapped flag 2023-03-01 09:18:26 -08:00
Mitchell Hashimoto
5f9ab91466 screen: fix issue with resizing w/ more cols, reflow, and scrollback 2023-03-01 09:08:08 -08:00
Mitchell Hashimoto
1970a84960 screen: when resizing and trimming scrollback, have to offset cursor Y
When the scrollback is trimmed off the top, the y stops moving. This
would cause an assertion failure because y could be greater than the row
count! The test case tests this.
2023-02-28 22:28:27 -08:00
Mitchell Hashimoto
87e0f5589f screen clone should not make full requested height "written"
Previously, the screen clone would incidentally mark the full height as
"written" which would cause resize to create scrollback because it was
trying to preserve prior rows. A clone should not "write" any data. This
modifies the clone operation to create a screen with the correct height
but only copy data actually written.
2023-02-28 17:10:28 -08:00