531 Commits

Author SHA1 Message Date
Mitchell Hashimoto
ce4541dd61 core, renderer: handle wide preedit chars
Fixes #855
2023-11-10 17:26:36 -08:00
Mitchell Hashimoto
3d8dd0783a font: if VS15/16 not specified, prefer any presentation in explicit font
Fixes #845

Quick background: Emoji codepoints are either default text or default
graphical ("Emoji") presentation. An example of a default text emoji
is ❤. You have to add VS16 to this emoji to get: ❤️. Some font are
default graphical and require VS15 to force text.

A font face can only advertise text vs emoji presentation for the entire
font face. Some font faces (i.e. Cozette) include both text glyphs and
emoji glyphs, but since they can only advertise as one, advertise as
"text".

As a result, if a user types an emoji such as 👽, it will fallback to
another font to try to find a font that satisfies the "graphical"
presentation requirement. But Cozette supports 👽, its just advertised
as "text"!

Normally, this behavior is what you want. However, if a user explicitly
requests their font-family to be a font that contains a mix of test and
emoji, they _probably_ want those emoji to be used regardless of default
presentation. This is similar to a rich text editor (like TextEdit on
Mac): if you explicitly select "Cozette" as your font, the alien emoji
shows up using the text-based Cozette glyph.

This commit changes our presentation handling behavior to do the
following:

  * If no explicit variation selector (VS15/VS16) is specified,
    any matching codepoint in an explicitly loaded font (i.e. via
    `font-family`) will be used.

  * If an explicit variation selector is specified or our explicitly
    loaded fonts don't contain the codepoint, fallback fonts will be
    searched but require an exact match on presentation.

  * If no fallback is found with an exact match, any font with any
    presentation can match the codepoint.

This commit should generally not change the behavior of Emoji or VS15/16
handling for almost all users. The only users impacted by this commit
are specifically users who are using fonts with a mix of emoji and text.
2023-11-08 21:55:20 -08:00
Gregory Anders
cd01340cce macos: add key binding for equalizing split sizes 2023-11-07 16:23:28 -06:00
Mitchell Hashimoto
d20c4866b1 some comments, make switch exaustive 2023-11-06 14:42:10 -08:00
Tim Culverhouse
9a64697433 mouse: set mouse to text when bypassing mouse reporting
When shift is held, we are bypassing mouse reporting mode. Change the
cursor to text to indicate this to the user. On release, change back to
whatever we were before.
2023-11-06 14:36:59 -08:00
Mitchell Hashimoto
4e3ab4879d Merge pull request #822 from gpanders/split-resizing
macos: implement split resizing
2023-11-06 09:35:43 -08:00
Mitchell Hashimoto
f8b0654a19 Merge pull request #816 from Raiden1411/feat/options
feat: add support for `--fullscreen`, `--title` and `--class` values
2023-11-06 08:55:33 -08:00
Mitchell Hashimoto
3564dd5e7e stylistic changes 2023-11-06 08:47:09 -08:00
Raiden1411
d2d5d4ba82 chore: cleanup 2023-11-06 14:27:36 +00:00
Raiden1411
232527c9dc fix: fullscreen on new windows 2023-11-06 11:59:16 +00:00
Raiden1411
7fa712ab2b chore: more comment changes 2023-11-06 11:32:25 +00:00
Raiden1411
094f8effa3 fix: begin implementation of suggested changes 2023-11-06 10:19:09 +00:00
Gregory Anders
0a2d435481 core: add resize_split binding with default keys
On macOS, use Cmd+Ctrl+Arrow keys as default bindings for resizing by 10
points in the given direction.
2023-11-05 20:20:39 -06:00
Mitchell Hashimoto
74b840df8e rename Pty.zig to pty.zig 2023-11-05 23:41:45 +00:00
kcbanner
232df8de8f windows: add support for the glfw backend on Windows
Changes:
- Add WindowsPty, which uses the ConPTY API to create a pseudo console
- Pty now selects between PosixPty and WindowsPty
- Windows support in Command, including the ability to launch a process with a pseudo console
- Enable Command tests on windows
- Add some environment variable abstractions to handle the missing libc APIs on Windows
- Windows version of ReadThread
2023-11-05 23:15:49 +00:00
Mitchell Hashimoto
705f3b52c7 config: add clipboard-paste-bracketed-safe 2023-11-05 09:25:06 -08:00
Mitchell Hashimoto
f521b0cb99 core: not unsafe on bracketed 2023-11-05 09:20:27 -08:00
Mitchell Hashimoto
ef44551522 apprt/embedded: hook up paste confirmation 2023-11-05 09:20:16 -08:00
Raiden1411
467b840bcf glfw: send warning for fullscreen 2023-11-05 15:19:29 +00:00
Raiden1411
19afbb90a7 fix: glfw build 2023-11-05 14:06:33 +00:00
Raiden1411
dff3ce6eb5 chore: add targets 2023-11-05 13:26:51 +00:00
Raiden1411
aa62d78fc2 chore: add log to setTitle 2023-11-05 12:03:08 +00:00
Raiden1411
d45415c8bf more match fixes 2023-11-05 12:01:11 +00:00
Raiden1411
17c6496855 fix: match main 2023-11-05 11:58:44 +00:00
Raiden1411
9e9ad67d3c feat: add support for fullscreen, title and class values 2023-11-05 11:49:25 +00:00
Mitchell Hashimoto
06a469fc4b core: do not consider bracketed pastes unsafe 2023-11-04 12:08:34 -07:00
Mitchell Hashimoto
a38220eade terminal: move sanitization check to this package, unit test 2023-11-04 11:19:25 -07:00
David Rubin
65c9ba0a86 add todos + make sure non-implimented platforms still work. 2023-11-04 00:50:26 -07:00
David Rubin
a578ec342f forgot to update other backends 2023-11-03 14:20:24 -07:00
David Rubin
6e575d9035 configs added 2023-11-03 13:20:26 -07:00
David Rubin
44073e4c98 add basic functionality 2023-11-03 10:58:56 -07:00
Lukáš Dvořák
8774a73302 update comment 2023-11-03 18:30:42 +01:00
Lukáš Dvořák
5224b6157c fix: posToViewPort when using balanced padding enabled 2023-11-03 18:28:34 +01:00
Leo Razoumov
dc527bd2cb feat: keybind escape sequence action "esc:text" similar to "csi:text" 2023-11-02 17:50:17 -04:00
Mitchell Hashimoto
6663c13a66 core: if a font-style is specified, do not restrict style category 2023-11-01 09:49:25 -07:00
Chinmay Dalal
4a0e53c1cc expose selectOutput via ctrl+triple click
closes #752
2023-10-30 21:46:59 +05:30
Gregory Anders
2ee80a52df macos: set window resizeIncrements when cell size changes
The resizeIncrements property is only modified when the cell size of the
focused window changes. If two splits have the same cell size then the
property is not modified when focusing between the two splits.
2023-10-26 20:27:58 -05:00
Mitchell Hashimoto
5d062947da core: check for inspector activity before recording event
Fixes #732
2023-10-26 14:40:25 -07:00
Mitchell Hashimoto
a162c7c47f inspector: move inspector to dedicated folder 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
00ed6069f6 inspector: render basic key inspector 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
7f5f6d01cf inspector: keep track of keyboard events (not rendered yet) 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
eaa7777fbb inspector: cell inspector 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
bc398327f2 inspector: track mouse state 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
5a299e14e4 all threads are notified of inspector state, trigger render 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
afa08ffc02 initial work on basic inspector information 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
55f681a0fd inspector is scaled to native dpi 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
865bf7441c apprt/gtk: initialize and run the inspector 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
7a30d1080e core: hook up all the inspector activation state and such 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
29bbcbbf92 core: add input binding to control terminal inspector 2023-10-24 15:27:14 -07:00
Matthew Winter
c49c300c3a fix: adjust for window padding when calculating whether selection has started 2023-10-21 08:48:06 -07:00