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
Thorsten Ball
147d5b0f3e
gtk: fix arrow-up stealing focus
...
This fixes #253 -- with essentially a single line! Just took me a while
to find out where to add this line.
Turns out we already solved this problem for `<Tab>` so now we do the
same thing for `<Up>`: we tell the `GtkApplication` we handled the event
so it doesn't propagate any further.
2023-08-09 20:11:03 +02:00
Mitchell Hashimoto
0ff390919a
Merge pull request #262 from mitchellh/split-writes
...
update libxev to fix split writes on large writes (i.e. big paste)
2023-08-09 10:17:36 -07:00
Mitchell Hashimoto
6cf22f841c
ctrl+backspace should send 0x08
...
Fixes #260
2023-08-09 10:16:23 -07:00
Mitchell Hashimoto
e15b5ab42c
fix error set for libxev cross-platform
2023-08-09 10:05:48 -07:00
Mitchell Hashimoto
e33f6c71de
update libxev to fix split writes on large writes (i.e. big paste)
...
Fixes #258
This was an upstream bug in libxev where partial the queueWrite
mechanism would not correctly handle partial write results:
https://github.com/mitchellh/libxev/pull/60
2023-08-09 08:18:43 -07:00
Mitchell Hashimoto
5854be9855
Merge pull request #261 from mitchellh/scroll-page
...
scroll keybindings: top, bottom, page up, page down, page fractional
2023-08-09 07:49:33 -07:00
Mitchell Hashimoto
2fb8ad8196
linux default keybindings for scroll top, bot, page up, down
2023-08-09 07:40:55 -07:00
Mitchell Hashimoto
0ed76b4300
scroll_page_fractional keybinding
2023-08-09 07:37:18 -07:00
Mitchell Hashimoto
a8380e937d
scroll top, bot, page up, page down binding actions
2023-08-09 07:24:11 -07:00
Mitchell Hashimoto
2c140b5a22
Merge pull request #257 from mitchellh/pckeys
...
bind sequences for PC style function keys from xterm
2023-08-08 16:45:36 -07:00
Mitchell Hashimoto
7ac61469c9
bind sequences for PC style function keys from xterm
...
Fixes #256
This makes a whole lot more sequences work, such as `ctrl+left`,
`ctrl+shift+f1`, etc. We were just missing these completely.
This also found an issue where if you split a sequence across two
`write()` syscalls, then `/bin/sh` (I didn't test other shells)
treats it as two literals rather than parsing as a single sequence.
Great.
2023-08-08 16:43:27 -07:00
Mitchell Hashimoto
591bd3c719
Merge pull request #252 from mitchellh/caps
...
keyboard bindings should never take caps/num lock into account
2023-08-08 11:01:33 -07:00
Mitchell Hashimoto
bfe6cfeb1a
keyboard bindings should never take caps/num lock into account
2023-08-08 10:58:05 -07:00