Mitchell Hashimoto
bddf24f378
Merge pull request #275 from mitchellh/fc-init-once
...
only initialize font discovery mechanism once, cache on App
2023-08-13 08:19:13 -07:00
Mitchell Hashimoto
619d2ade3e
only initialize font discovery mechanism once, cache on App
...
Fontconfig in particular appears unsafe to initialize multiple times.
Font discovery is a singleton object in an application and only ever
accessed from the main thread so we can work around this by only
initializing and caching the font discovery mechanism exactly once on
the app singleton.
2023-08-13 08:01:33 -07:00
Mitchell Hashimoto
a8426a90dd
input: carbon modifier bits were not correct for some modifiers
...
I went and downloaded a couple different programs that use
UCKeyTranslate and dumped their values since I cannot find the header
file and then wrote a unit test to make sure we stay accurate here.
2023-08-12 15:32:18 -07:00
Mitchell Hashimoto
923df53825
ci: use custom token for release so it isn't rate limited
2023-08-12 11:41:22 -07:00
Mitchell Hashimoto
63fa34ef6b
terminal: avoid underflow on resize, tests added
2023-08-12 11:30:07 -07:00
Mitchell Hashimoto
6fec9f8096
Merge pull request #273 from mitchellh/wide-resize
...
Fix numerous edge cases with resizing columns with soft-wrapped wide characters (i.e. emoji)
2023-08-12 10:31:56 -07:00
Mitchell Hashimoto
9b5fd4b2ee
terminal: print wide char with 1-col width
2023-08-12 10:27:42 -07:00
Mitchell Hashimoto
71c8d5fc8e
terminal: resizing to 1 col wide with wide chars
2023-08-12 10:23:06 -07:00
Mitchell Hashimoto
44dd51a5b9
terminal: less col resizing with wide char needs to insert head spacer
2023-08-12 10:07:13 -07:00
Mitchell Hashimoto
eb10e9642c
terminal: introduce wide spacer head if reflowing wide char w/ more cols
2023-08-12 09:51:33 -07:00
Mitchell Hashimoto
3d5eda62fe
terminal: resize more cols with wide spacer head across multiple lines
2023-08-12 08:26:13 -07:00
Mitchell Hashimoto
a6af75aee4
terminal: resize more cols with wide spacer head deletes the spacer
2023-08-12 08:20:10 -07:00
Mitchell Hashimoto
3d72178ef4
terminal: delete wide char if it wraps and we delete the row above
2023-08-11 16:23:02 -07:00
Mitchell Hashimoto
8bb69045a8
terminal: allow selections outside of written area and clamp
...
This fixes a possible crash.
2023-08-11 14:21:07 -07:00
Mitchell Hashimoto
8fd772c95e
Merge pull request #271 from mitchellh/keymap
...
macos, gtk: robust keyboard layout handling
2023-08-11 13:15:25 -07:00
Mitchell Hashimoto
55778a049b
apprt/gtk, opengl: render preedit
2023-08-11 12:37:27 -07:00
Mitchell Hashimoto
d62161e2c3
support preedit text rendering in core and metal
2023-08-11 12:20:48 -07:00
Mitchell Hashimoto
65c4aada02
input: rename "unmapped" to "physical"
2023-08-11 12:02:01 -07:00
Mitchell Hashimoto
57f7a59168
input: rename Keymap to KeymapDarwin since its macos only for now
2023-08-11 12:02:01 -07:00
Mitchell Hashimoto
ce4eb2112c
core: get rid of ignore_char, apprt must handle this now
2023-08-11 12:02:01 -07:00
Mitchell Hashimoto
38477ed547
apprt/gtk: use manual translation, handle dead key states
2023-08-11 12:02:01 -07:00
Mitchell Hashimoto
e787a79702
input: printable, comment on what magic indexes mean
2023-08-11 12:02:01 -07:00
Mitchell Hashimoto
1ded176377
input: only load Keymap on darwin
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
7ea8feea69
apprt/embedded: fix char callback ignore when key is consumed
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
4fe739cae0
core: note when keyCallback processed the input
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
d5df8aea9a
apprt/embedded: handle repeat events
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
d02bf322f8
apprt/embedded: remove old _key api, new only!
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
1e1ad7deb9
macos: use the new self-hosted translation
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
6d439c06af
keymap had incorrect bitfield for modifiers
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
f06fecbc43
input: associate input.Key with keycodes from Chrome
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
1f4a80aa93
apprt/embedded: keymap state is per surface, not per app
2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
57a527b0c9
macos: detect keyboard layout change and reload the keymap
2023-08-11 12:01:59 -07:00
Mitchell Hashimoto
3d23f26326
input, macos: initial work on keymapper and macos usage of it
2023-08-11 12:01:58 -07:00
Mitchell Hashimoto
a042b5db9c
Merge pull request #270 from mitchellh/cc-hidden-inactive-cursor
...
Don't show hollow cursor in inactive windows when cursor is hidden.
2023-08-11 08:56:06 -07:00
cryptocode
6045088afc
Don't show hollow cursor in inactive windows when cursor is hidden.
...
This is the behavior of the other terminals I have, such as iTerm, allcritty, WezTerm, and Kitty. The hollow cursor is especially noticable when running in two panes,
one of them inactive with animations (such as a progress bar)
2023-08-11 17:20:03 +02:00
Mitchell Hashimoto
70efaea787
Merge pull request #269 from mitchellh/ignore-char-control
...
do not process charCallback if control character was processed
2023-08-10 12:19:58 -07:00
Mitchell Hashimoto
68cb3288be
do not process charCallback if control character was processed
...
Fixes #267
We have a mechanism `ignore_char` to ignore the `charCallback` exactly
once. It is guaranteed by all app runtimes that `keyCallback` is called
before `charCallback` and that they're called in order by key press
(you'll never get 3 `keyCallbacks` and then `charCallback` for the first
press).
We use this for example to ensure that if you bind `a` to something,
that we never actually print 'a', since the binding consumes it.
This commit sets `ignore_char` whenever we detect a key that should be
translated to a control character and written to the pty. As the comment
in the code states: we probably should've been doing this anyways. It is
a complete mystery why macOS behaves the way it does that caused us to
figure this out.
2023-08-10 11:51:11 -07:00
Mitchell Hashimoto
2704b54bc5
warn if the binary is a debug build
2023-08-09 15:18:35 -07:00
Mitchell Hashimoto
7b33ee6b71
Merge pull request #266 from mitchellh/primary-clipboard
...
Primary (selection) clipboard support
2023-08-09 15:14:59 -07:00
Mitchell Hashimoto
ecb9563f2a
apprt/glfw: warn that the macos version has bugs
2023-08-09 15:14:39 -07:00
Mitchell Hashimoto
688ab84661
apprt/embedded: allow noting that selection clipboard is not supported
2023-08-09 14:52:22 -07:00
Mitchell Hashimoto
5d6086a1b1
"copy-on-select" configuation to disable
2023-08-09 14:44:24 -07:00
Mitchell Hashimoto
afc6a9976f
apprt/embedded: support selection clipboard
2023-08-09 14:29:39 -07:00
Mitchell Hashimoto
ca008df73d
apprt/glfw: support primary clipboard
2023-08-09 14:22:17 -07:00
Mitchell Hashimoto
f012b908b7
apprt/gtk: use glfw for reading primary clipboard (see comment)
2023-08-09 14:17:03 -07:00
Mitchell Hashimoto
347c60d9bd
selection copies to the selection clipboard
2023-08-09 14:00:48 -07:00
Mitchell Hashimoto
f3996ff0f8
apprt: primary clipboard awareness (selection clipboard)
2023-08-09 13:41:22 -07:00
Mitchell Hashimoto
232bffe338
Merge pull request #264 from moderation/main
...
gtk: apply background opacity
2023-08-09 12:38:13 -07:00
moderation
b33b2bb6a4
gtk: apply background opacity
...
Signed-off-by: moderation <michael@sooper.org>
2023-08-09 12:03:05 -07:00
Mitchell Hashimoto
1bb5158185
Merge pull request #263 from mitchellh/mrn/gtk-fix-up-arrow
...
gtk: fix arrow-up stealing focus
2023-08-09 11:17:11 -07:00