5231 Commits

Author SHA1 Message Date
Mitchell Hashimoto
2f36fd4b5f input: ctrl ASCII uppercase behaves the same as ctrl lowercase
Fixes #1505

I verified this behavior with every other terminal and I've added test
cases for it. We previously had a test case to assert the opposite,
which is incorrect.
2024-02-11 14:28:53 -08:00
Mitchell Hashimoto
dd7aff52f0 Merge pull request #1504 from mitchellh/macos-focus
macos: more robust surface focus state detection
2024-02-11 09:28:35 -08:00
Mitchell Hashimoto
118b51157a macos: more robust surface focus state detection
Fixes #1500

This overhauls how we do focus management for surfaces to make it more
robust. This DID somehow all work before but was always brittle and was
a sketchy play with SwiftUI/AppKit behavior across macOS versions.

The new approach uses our window controller and terminal delegate
system to disseminate focus information whenever any surface changes
focus. This ensures that only ONE surface ever has focus in libghostty
because the controller ensures it is widely distributed.
2024-02-11 09:19:13 -08:00
Mitchell Hashimoto
aa27190baf Merge pull request #1501 from peteschaffner/improve-new-tab-button-image
Improve new tab button icon color with window transparency
2024-02-11 08:34:55 -08:00
Mitchell Hashimoto
68a681e2df Merge pull request #1503 from marler8997/windowsRcFile
windows: add rc file
2024-02-11 08:33:08 -08:00
Jonathan Marler
7f6088ee1f windows: add rc file
Adds an rc file for windows.  An rc file is a source file given to the
toolchain that instructs it on what "resources" to embed inside the
executable.  You can think of "resources" as files or data that get
embedded into the executable and can be accessed both by the application
at runtime or by the OS.  The OS uses resources for things like getting
the icon of the executable or extracting the version of an exe for the
user.  Note that exe resources can also be modified without having to
recompile/relink the binary.

Thanks to Squeek502 zig has its own "RC Compiler" so this should still be
buildable on all platforms.

In the RC file I've included some basic info and left in comments for
other info to be populated later.  I've also included a manifest file
which starts out by telling windows that our exe will be DPI aware and
to use a slightly more modern look and feel for native controls.
2024-02-11 08:51:43 -07:00
Mitchell Hashimoto
9e43ed306e Merge pull request #1502 from marler8997/center16Icon
image: center 16x16 icon
2024-02-11 07:36:26 -08:00
Jonathan Marler
986f8bc134 image: center 16x16 icon
looks like the 16x16 icon is not centered, it's got 2 blank lines on the
left and no blank lines on the right.  This centers it so there is 1 blank
line on the left and right.
2024-02-11 08:15:15 -07:00
Pete Schaffner
aad302f236 Make new tab icon respond to window's key status 2024-02-11 14:24:35 +01:00
Pete Schaffner
595c1e222b Remove vibrant layer before re-adding it 2024-02-11 13:52:11 +01:00
Mitchell Hashimoto
52f48147c5 Merge pull request #1499 from marler8997/fixWindowsTmpDir
os: remove UB, tmpDir is returning stack memory on Windows
2024-02-10 20:39:32 -08:00
Jonathan Marler
e1996ad1e5 os: remove UB, tmpDir is returning stack memory on Windows
On Windows, the tmpDir function is currently using a buffer on the stack
to convert the WTF16-encoded environment variable value "TMP" to utf8
and then returns it as a slice...but that stack buffer is no longer valid
when the function returns.  This was causing the "image load...temporary
file" test to fail on Windows.

I've updated the function to take an allocator but it only uses
the allocator on Windows.  No allocation is needed on other platforms
because they return environment variables that are already utf8 (ascii)
encoded, and the OS pre-allocates all environment variables in the process.
To keep the conditional that determines when allocation is required, I
added the `freeTmpDir` function.
2024-02-10 21:09:05 -07:00
Mitchell Hashimoto
3902c04f0f ci: add timeouts to prettier and alejandra 2024-02-10 19:51:18 -08:00
Mitchell Hashimoto
3157e23f6d Merge pull request #1498 from qwerasd205/fix-bench-options
fix(bench): update std options format
2024-02-10 19:46:56 -08:00
Mitchell Hashimoto
0c74182873 ci: build bench on larger instance 2024-02-10 19:42:25 -08:00
Mitchell Hashimoto
615482d2d3 ci: build benchmarks 2024-02-10 19:32:14 -08:00
Qwerasd
58b925d4c3 fix(bench): update std options format 2024-02-10 22:20:24 -05:00
Mitchell Hashimoto
74c26d1ef0 Merge pull request #1489 from mitchellh/update-zig
update zig
2024-02-10 17:48:50 -08:00
Mitchell Hashimoto
872c15fc78 Merge pull request #1497 from mitchellh/emoji-vs-bug
terminal: only apply VS15/16 to emoji
2024-02-10 17:38:07 -08:00
Mitchell Hashimoto
004405ccf9 terminal: only apply VS15/16 to emoji
Fixes #1482
2024-02-10 17:26:45 -08:00
Chris Marchesi
2f84472f66 nix: update nixpkgs-zig-0-12
This updates the nixpkgs-zig-0-12 to be in line with the current overlay
Zig (0.12.0-dev.2701+d18f52197).
2024-02-10 17:22:21 -08:00
Mitchell Hashimoto
7f3ee039ff ci: nix job should also not push to cachix 2024-02-10 17:05:36 -08:00
Mitchell Hashimoto
18fdef3160 ci: prettier/alejandra do not push to cachix 2024-02-10 17:02:14 -08:00
Mitchell Hashimoto
8456e9d7f7 command: io_mode removed for windows 2024-02-10 16:58:45 -08:00
Mitchell Hashimoto
be61e0025f update min zig version 2024-02-10 16:46:09 -08:00
Mitchell Hashimoto
de228d99dd logfn doesn't need to be pub 2024-02-10 16:45:00 -08:00
Mitchell Hashimoto
66a91638d3 update zig 2024-02-10 16:43:57 -08:00
Jakub Konka
e32b4849d1 fix for latest breaking libstd changes to Options 2024-02-10 16:43:57 -08:00
Mitchell Hashimoto
28c078ec37 update req version in build.zig 2024-02-10 16:43:57 -08:00
Mitchell Hashimoto
32b2f88ff0 update zig 2024-02-10 16:43:57 -08:00
Pete Schaffner
1bcec0d49f Make new tab button images vibrant
This makes them blend better with the background in windows with
transparency.
2024-02-11 00:55:33 +01:00
Pete Schaffner
3b6bac0121 Make special blending mode class more generic
This allows us to specify what kind of context we'd like our vibrant
layer to exist in (light or dark).
2024-02-11 00:53:18 +01:00
Mitchell Hashimoto
6d5e73fd75 ci: nix job should use namespace 2024-02-10 13:54:46 -08:00
Mitchell Hashimoto
c46b09a170 Merge pull request #1495 from mitchellh/self-hosted-x86
ci: move to self-hosted x86 runners
2024-02-10 13:53:52 -08:00
Mitchell Hashimoto
1189a0974d ci: switch linux to namespace 2024-02-10 13:41:41 -08:00
Mitchell Hashimoto
5ad1dab3cc ci: try namespace 2024-02-10 13:36:09 -08:00
Mitchell Hashimoto
e44338b1c0 ci: no, build on mediums 2024-02-10 13:16:13 -08:00
Mitchell Hashimoto
e99b8d4134 ci: try small instances 2024-02-10 13:09:00 -08:00
Mitchell Hashimoto
e45b3b4d48 ci: test self-hosted x86 runners 2024-02-10 09:38:20 -08:00
Mitchell Hashimoto
f7c945c4a7 Merge pull request #1494 from mitchellh/grapheme-break
Optimized grapheme break detection (6x speedup)
2024-02-10 07:54:06 -08:00
Mitchell Hashimoto
49cc5e2f47 Merge pull request #1483 from peteschaffner/improve-titlebar-tabs-background-color
Improve titlebar unselected tabs background color
2024-02-10 07:52:24 -08:00
Mitchell Hashimoto
0e482b8519 macos: nitpicks 2024-02-10 07:52:02 -08:00
Mitchell Hashimoto
5275d44e7d unicode: precompute grapheme break data 2024-02-09 20:50:13 -08:00
Mitchell Hashimoto
6f8b4204b9 terminal: use new grapheme break algo 2024-02-09 20:31:20 -08:00
Mitchell Hashimoto
132fbb3a46 unicode: use packed struct for break state 2024-02-09 20:29:36 -08:00
Mitchell Hashimoto
c47ad97f62 unicode: remove unused 2024-02-09 20:23:29 -08:00
Mitchell Hashimoto
5f3574a4bf unicode: direct port of ziglyph to start 2024-02-09 19:44:57 -08:00
Mitchell Hashimoto
a830675ec8 macos: copy fish resources into app bundle
Fixes #1492
2024-02-09 17:08:20 -08:00
Mitchell Hashimoto
d93161c8ee Merge pull request #1490 from tt/keep-shadows-for-native-tab-bar
Keep shadows for native tab bar
2024-02-09 14:22:35 -08:00
Mitchell Hashimoto
56b453a93f macos: comment why we guard 2024-02-09 14:22:21 -08:00