Commit Graph

7882 Commits (34c3da43023b0c058c0647b604b8bc4b2f87ff7b)

Author SHA1 Message Date
Mitchell Hashimoto 75b8dc19d4
Merge pull request #2430 from ghostty-org/push-qqxqmpquyyut
macos: retry focusing the quick terminal to handle focus on other screen
2024-10-09 15:25:55 -07:00
Mitchell Hashimoto 7c5ea1c8d6
Merge pull request #2429 from ghostty-org/push-svonxsqwnumx
macos: change our minimum version to macOS 13
2024-10-09 15:19:12 -07:00
Mitchell Hashimoto 94d30eaea3
macos: retry focusing the quick terminal to handle focus on other screen
Fixes #2409

This is one of the weirder macOS quirks (bugs? who knows!) I've seen
recently. The bug as described in #2409: when you have at least two
monitors ("screens" in AppKit parlance), Ghostty on one, a focused app
on the other, and you toggle the quick terminal, the quick terminal
does not have focus.

We already knew and accounted for the fact that
`window.makeKeyAndOrderFront(nil)` does not work until the window is visible
and on the target screen. To do this, we only called this once the
animation was complete. For the same NSScreen, this works, but for
another screen, it does not.

Using one DispatchQueue.async tick also does not work. Based on testing,
it takes anywhere from 2 to 5 ticks to get the window focus API to work
properly. Okay.

The solution I came up with here is to retry the focus operation every
25ms up to 250ms. This has worked consistently for me within the first 5
ticks but it is obviously a hack so I'm not sure if this is all right.

This fixes the issue but if there's a better way to do this, I'm all
ears!
2024-10-09 15:13:54 -07:00
Mitchell Hashimoto eec77e271c
macos: change our minimum version to macOS 13
macOS 12 is officially EOL by Apple and the project only supports
officially supported versions of macOS. Once publicly released, users on
older macOS versions will have to use older released builds.
2024-10-09 14:41:57 -07:00
Mitchell Hashimoto 2f009b7262
Merge pull request #2428 from ghostty-org/push-spqssprnrpun
build: use the native target for generic macos target by default
2024-10-09 14:18:19 -07:00
Mitchell Hashimoto 640eaf3795
Merge pull request #2427 from lucymhdavies/patch-1
Include command to run a subset of tests in README
2024-10-09 14:11:14 -07:00
Mitchell Hashimoto 124ffb3ecb
build: use the native target for generic macos target by default
Fixes #2426
2024-10-09 14:08:48 -07:00
Lucy Davinhart || Strawb System 1b024b117f
Include command to run a subset of tests in README
For Zig veterans this may be obvious. As a Zig newbie, for me it was no, but found the answer in the Discord.
2024-10-09 21:23:05 +01:00
Qwerasd ca59367164 harfbuzz: fix tests to account for removal of null cells 2024-10-09 16:05:09 -04:00
Qwerasd 7de7bfa20e coretext: fix tests to account for removal of null cells 2024-10-09 16:00:57 -04:00
Qwerasd 0bb176d22c renderer: cleanup, reduce nesting, more comments 2024-10-09 15:53:02 -04:00
Qwerasd b65ccd4598 test(coretext): add test for high plane padding sprite font behavior 2024-10-09 15:28:01 -04:00
Mitchell Hashimoto 6b293fbf25
Merge pull request #2424 from ghostty-org/push-xnvwslrvoktn
core: support mouse button 6/7 for mouse reports
2024-10-09 11:30:19 -07:00
Mitchell Hashimoto e90dec04be
core: support mouse button 6/7 for mouse reports
Fixes #2423

This corresponds to horizontal scroll on macOS and likely other mice.
2024-10-09 11:24:36 -07:00
Mitchell Hashimoto fe9afe73f0
Merge pull request #2422 from ghostty-org/push-nrnmvswvwlmz
macos: don't swallow flagsChanged events, breaks system bindings
2024-10-09 10:20:29 -07:00
Mitchell Hashimoto a2ba7b4948
macos: don't swallow flagsChanged events, breaks system bindings
Fixes #2419
2024-10-09 10:17:39 -07:00
Mitchell Hashimoto defb2e186d
Merge pull request #2420 from ghostty-org/push-lrummrmpmxwt
core: modifier-only keys do not reset pending key sequences
2024-10-09 09:50:28 -07:00
Mitchell Hashimoto 4ffb1c8cf9
core: modifier-only keys do not reset pending key sequences
This allows nested key sequences to be used such as `ctrl+a>ctrl+b>c`.
2024-10-09 09:46:16 -07:00
Mitchell Hashimoto b65a9ebc45
Merge pull request #2234 from jcollie/gtk-css-no-libadwaita
gtk: load css when libadwaita is not being used
2024-10-09 09:37:30 -07:00
Mitchell Hashimoto 3e55c47e8b
Merge pull request #2418 from ghostty-org/apprt-key-seq
macOS: Key Sequence UI
2024-10-09 09:30:53 -07:00
Mitchell Hashimoto 8994a8c627
macos: implement key sequence UI 2024-10-08 21:58:53 -07:00
Mitchell Hashimoto 5c1ffbb642
apprt: implement key_sequence action 2024-10-08 21:55:00 -07:00
Qwerasd 5730242596 coretext: don't emit 0 codepoints for special fonts 2024-10-08 23:47:35 -04:00
Qwerasd 7686cacde6 renderer, shaper: don't use null cells, handle bg and decorations separately
Significant rework that also removes a lot of unnecessarily duplicated
work while rebuilding cells in both renderers. Fixes multiple issues
with decorations and bg colors on wide chars and ligatures, while
reducing the amount of special case handling required.
2024-10-08 23:10:43 -04:00
Mitchell Hashimoto 8d7367fa64
input: return a K/V entry for the binding set `get` 2024-10-08 06:29:54 -10:00
Jeffrey C. Ollie a559ecf957
gtk: add `adw` or `gtk` class to top level windows 2024-10-08 11:17:33 -05:00
Jeffrey C. Ollie bb109c435f
gtk: fix window-theme=ghostty 2024-10-08 11:17:33 -05:00
Jeffrey C. Ollie ab0a736089
gtk: load css when libadwaita is not being used 2024-10-08 11:17:32 -05:00
Mitchell Hashimoto 78d6cfb620
Merge pull request #2255 from pluiedev/feat/situs-inversus
DRAFT: implement splitting leftwards and upwards
2024-10-08 06:09:26 -10:00
Mitchell Hashimoto 392875381a
macos: become aware of new split directions left and up 2024-10-07 15:34:47 -10:00
Leah Amelia Chen fbc621a7d8 gtk: implement splitting leftwards and upwards 2024-10-07 18:19:27 -07:00
Mitchell Hashimoto 1b5a4433c8
Merge pull request #2414 from ghostty-org/push-yzvnksxnotwm
macos: quick terminal window blur settings take effect properly
2024-10-07 15:01:20 -10:00
Mitchell Hashimoto 163e6cccca
macos: quick terminal window blur settings take effect properly
Fixes #2410
2024-10-07 14:58:47 -10:00
Mitchell Hashimoto 2b93e37e8f
Merge pull request #2413 from ghostty-org/push-zzplrqptxorm
macos: remove the ability to bind fn/globe
2024-10-07 14:54:33 -10:00
Mitchell Hashimoto ed2cd6d436
macos: remove the ability to bind fn/globe
This was recently introduced a few days ago. Unfortunately, this doesn't
work as expected. The "function" modifier is not actually the fn key
but used by macOS to represent a variety of "functional" key presses.
This breaks other bindings such as #2411.

I can't find a source on the internet that reliably tells me how we
can detect fn key presses, but I do find a number of sources that tell
us we can't.
2024-10-07 14:36:12 -10:00
Mitchell Hashimoto 3e3c666244
Merge pull request #2408 from ghostty-org/push-ykwznorkrttp
macos: send mouse cursor position events for right mouse dragged
2024-10-07 10:55:33 -10:00
Mitchell Hashimoto fe3f8439a7
macos: send mouse cursor position events for right mouse dragged
Fixes #2407
2024-10-07 10:50:04 -10:00
Mitchell Hashimoto c4105c3f40
Merge pull request #2406 from ghostty-org/gtk-key
gtk: handle key press events at the window level if necessary
2024-10-07 10:20:54 -10:00
Mitchell Hashimoto 1b1589e0c6
apprt/gtk: only run window key events with tab overview shown 2024-10-07 13:17:21 -07:00
Mitchell Hashimoto 9c547dd8cd
apprt/gtk: forward window key events to the focused surface 2024-10-07 13:06:35 -07:00
Mitchell Hashimoto 9e435f050e
apprt/gtk: setup window key event infrastructure 2024-10-07 13:01:36 -07:00
Mitchell Hashimoto 495b4c6131
Merge pull request #2405 from ghostty-org/push-pwuvkvrtvytu
gtk: only set initial window size if its the first terminal in a window
2024-10-07 06:52:28 -10:00
Mitchell Hashimoto eab6c0d4af
gtk: only set initial window size if its the first terminal in a window
Fixes #2391
2024-10-07 09:46:13 -07:00
Mitchell Hashimoto dd0f05a537
Merge pull request #2404 from ghostty-org/push-wnotxszvqmwr
macos: global keybind event tap only handles events when app is inactive
2024-10-07 06:03:58 -10:00
Mitchell Hashimoto 9e161758bb
input: function is part of the binding mods 2024-10-07 05:52:20 -10:00
Mitchell Hashimoto 715df3f263
macos: global keybind event tap only handles events when app is inactive
Fixes #2403
2024-10-07 05:46:16 -10:00
Mitchell Hashimoto 481e249958
Merge pull request #2400 from ghostty-org/mouse-exit
Detect mouse leave events, use it to reset hover states
2024-10-06 15:42:33 -10:00
Mitchell Hashimoto c7f83fcef8
gtk: notify core of cursor leave 2024-10-06 18:23:53 -07:00
Mitchell Hashimoto 227eda1d09
macos: notify core of mouse exit 2024-10-06 15:20:17 -10:00
Mitchell Hashimoto 65c907ddab
core: negative x/y for cursor position indicates mouse exited viewport 2024-10-06 15:20:17 -10:00