111 Commits

Author SHA1 Message Date
Mitchell Hashimoto
0e4b91de88 macos: stylistic changes 2023-09-28 08:34:27 -07:00
Gregory Anders
1fbd5e5590 macos: add keyEquivalent overload to also return modifier string 2023-09-28 08:28:46 -07:00
Gregory Anders
4837d840f6 macos: create modifier flags as OptionSet instead of from array
Nit picky change, but the OptionSet class (which NSEvent.ModifierFlags
is an instance of) has an API for incrementally setting values without
needing to create an array.
2023-09-28 08:28:46 -07:00
Mitchell Hashimoto
57213547cd macos: custom fullscreen menu item to respect non-native fullscreen
Related to #392
2023-09-27 18:34:04 -07:00
Mitchell Hashimoto
f4886bb80e macos: read from clipboard uses UTF-8 encoded string, proper byte count 2023-09-25 17:26:23 -07:00
Mitchell Hashimoto
300ba32ad0 macos: enum does not need to be a string 2023-09-22 15:48:41 -07:00
Mitchell Hashimoto
1eb0dbb548 macos: more robust cursor visibility handling
Fixes #519

The core issue here was that `mouseEntered` was called AFTER
`cursorUpdate` (by Cocoa) so we were messing up our NSCursor state. To
fix this more robustly, all cursor state should ONLY be handled by
cursorUpdate and mouseEntered/Exit goes through that system now.
2023-09-22 15:47:08 -07:00
Mitchell Hashimoto
7f549c5b41 macos: detect mouseEntered/Exit on frame change 2023-09-21 09:42:17 -07:00
Mitchell Hashimoto
d12f07ceda macos: mouse tracking area should always send
Without this, non-first-responder views would not receive mouse
entered/exit events. This would break some of our mouse hiding state.
See comments for more info.
2023-09-21 09:30:42 -07:00
Mitchell Hashimoto
960edee559 macos: background-opacity getter 2023-09-20 22:05:23 -07:00
Mitchell Hashimoto
3ad39dd5e4 macos: sync NSAppearance for app based on window-theme setting 2023-09-20 21:54:50 -07:00
Mitchell Hashimoto
6cee9e57f6 macos: prevent mouseEntered/Exited processing if already in that state
See the comment in the code.

Fixes #494
2023-09-20 08:53:31 -07:00
Mitchell Hashimoto
5a02635d2c macos: async style clipboard reading 2023-09-19 10:36:17 -07:00
Mitchell Hashimoto
d911c49f44 macos: remove unnecessary call 2023-09-17 12:01:36 -07:00
SoraTenshi
833be445ba Spawn alert box on new tab if decorations disabled
Stray spaces

Fix check for windowDecoration
2023-09-17 11:58:11 -07:00
Mitchell Hashimoto
2b380ad37e macos: stylistic changes 2023-09-17 11:57:36 -07:00
Mitchell Hashimoto
f8fea2f65b macos: show warning in debug mode 2023-09-15 15:40:41 -07:00
Mitchell Hashimoto
724900f143 macos: implement setCursorVisibility 2023-09-14 19:37:30 -07:00
Mitchell Hashimoto
cb2931cb27 rename cursor shape to mouse shape for OSC 22 2023-09-14 11:12:17 -07:00
Mitchell Hashimoto
3356146bb4 macos: support cursor style 2023-09-14 10:40:40 -07:00
Mitchell Hashimoto
c1fe1f6646 macos: AppState config must be published and observed
Fixes #440

We previously weren't observing changes so they weren't being
automatically propagated. We were using an old pointer which at best
returned the wrong value and at worst crashed. I was able to make it
crash eventually, too.

This changes the fields to be properly published and observed and as a
result the config is immediately available to all users.
2023-09-13 15:06:41 -07:00
Mitchell Hashimoto
999d17c49d macos: integrate needsConfirmQuit to quit if all windows are at prompt 2023-09-11 15:44:28 -07:00
Mitchell Hashimoto
2f0905b60c macos: reload config MUST go through Zig core 2023-09-11 15:20:31 -07:00
Mitchell Hashimoto
711e3a5043 macos: add reload configuration to the Ghostty menu bar 2023-09-11 13:49:20 -07:00
Mitchell Hashimoto
db799d53e6 macos: UI for configuration errors 2023-09-11 13:21:13 -07:00
Mitchell Hashimoto
f0ee2fb454 macos: log configuration errors 2023-09-11 09:39:58 -07:00
Mitchell Hashimoto
2b04a7114b macos: use the configured unfocused split opacity 2023-09-10 18:52:40 -07:00
Mitchell Hashimoto
8bec01f237 macos: disable hit testing for unfocused split rectangle 2023-09-10 16:02:09 -07:00
Mitchell Hashimoto
ef5c5d1c0b macos: add split zoom to menu 2023-09-10 09:30:42 -07:00
Mitchell Hashimoto
de564dad94 macos: fade unfocused splits
Fixes #353
2023-09-10 09:17:46 -07:00
Mitchell Hashimoto
303c5ca189 macos: split traversal uses direction to determine proper focus target
Fixes #415
2023-09-10 08:59:05 -07:00
Mitchell Hashimoto
e5cba11ad0 macos: key events for modifier-only keys 2023-09-09 09:22:15 -07:00
Will Pragnell
7d9598fe6e macos: fix split focus when toggling fullscreen 2023-09-03 22:55:22 -07:00
Mitchell Hashimoto
e657a0f671 macos: close and refocus split work while zoomed 2023-09-02 16:47:48 -07:00
Mitchell Hashimoto
76ae039701 macos: new split on zoomed split unzooms 2023-09-02 16:37:22 -07:00
Mitchell Hashimoto
e2282f1f4d macos: zoomed splits put an emoji in the title bar 2023-09-02 16:33:33 -07:00
Mitchell Hashimoto
4570356e57 turn zoom into a toggle rather than an explicit zoom/unzoom 2023-09-02 16:03:51 -07:00
Mitchell Hashimoto
70bdc21d22 macos: support zoomed splits 2023-09-02 15:51:10 -07:00
Mitchell Hashimoto
1626c8cd3a macos: hacks for split focus to work correctly on macos 12 2023-09-02 09:15:50 -07:00
Will Pragnell
86122624e0 macos: add visible-menu non-native-fullscreen option 2023-09-01 21:45:45 -07:00
Mitchell Hashimoto
e0015a0d00 macos: hacks to grab surface focus on macOS 12
See comment in code.
2023-09-01 16:23:30 -07:00
Mitchell Hashimoto
b7508cdc66 macos: setup delegate for app state, config reload callback 2023-08-31 11:56:15 -07:00
Mitchell Hashimoto
76053460d5 macos: sync File menu 2023-08-31 11:40:21 -07:00
Mitchell Hashimoto
c7071a1da2 macos: complete lookup table for key equivalents 2023-08-31 11:14:07 -07:00
Mitchell Hashimoto
52396304ff macos: begin syncing menuitem key equivalents 2023-08-30 22:45:29 -07:00
Mitchell Hashimoto
c71979804e apprt/embedded: ghostty_surface_binding_action can now run any action 2023-08-30 21:46:38 -07:00
Thorsten Ball
a76aea4d0a macOS: new split can inherit font size 2023-08-19 09:59:04 +02:00
Thorsten Ball
2e9b787668 macOS: new window can inherit font size
This is the second part of #281 and adds the same mechanism that was
added for tabs in #296 for windows.

It works exactly the same way.
2023-08-19 09:29:56 +02:00
Mitchell Hashimoto
a18503fc01 macos: can always set base config on new tab 2023-08-18 09:21:47 -07:00
Mitchell Hashimoto
79971c62a6 macos: pass around a base surface_config_s rather than a new tab 2023-08-18 09:09:43 -07:00