Mitchell Hashimoto
c51170da9c
add end_search binding
2025-11-26 08:50:06 -08:00
Mitchell Hashimoto
f7b14a0142
macos: debounce search requests with length less than 3
2025-11-26 08:50:06 -08:00
Mitchell Hashimoto
339abf97f7
macos: can allow single char searches now
2025-11-26 08:50:06 -08:00
Mitchell Hashimoto
1bb2d4f1c2
macos: only end search if we previously had one
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
93656fca5a
macos: show progerss correctly for search
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
0e974f85ed
macos: fix iOS build
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
c20af77f98
macos: handle search progress/total apprt actions
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
d4a2f3db71
macos: search overlay shows search progress
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
7835ad0ea4
macos: more menu items
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
3f7cfca4b4
macos: add find menu item
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
949a8ea53f
macos: dummy search state for iOS
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
cfbc219f5c
macos: enter and shift+enter move the results
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
efc05523e0
macos: enter goes to next result
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
3ce19a02ba
macos: hook up the next/prev search buttons
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
ad8a6e0642
search thread needs to take an allocated needle
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
5ee000f58f
macos: search input starts the search up
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
081d73d850
macos: changes to SearchState trigger calls to internals
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
56d4a7f58e
macos: start_search refocuses the search input
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
c61d28a3a4
macos: esc returns focus back to surface
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
b7e70ce534
apprt: end_search
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
bc44b187d6
macos: hook up start_search apprt action to open search
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
b87d57f029
macos: search overlay
2025-11-26 08:50:03 -08:00
Lukas
2f1427f529
macOS: match scroller’s appearance with surface’s background
2025-11-17 18:20:24 +01:00
Lukas
011fc77caa
macOS: Fix dictation icon's position while speaking
2025-11-16 12:17:31 +01:00
Daniel Wennberg
49bf73458b
don't autohide scrollers
2025-11-14 07:40:51 -08:00
Daniel Wennberg
d48f855a48
macOS: set scrollbar size to .small
2025-11-14 07:36:54 -08:00
Lukas
1486be0cdf
macOS: add more cursor style and fixes #8409
2025-11-13 18:20:09 +01:00
Lukas
f5bddb346c
macOS: support close_all_windows action
2025-11-10 17:54:46 +01:00
Lukas
7ca858d404
macOS: move focus if command palette is not showing
2025-11-10 10:11:34 +01:00
Lukas
84082c2b96
macOS: equalize splits when double tapping on SplitView divider ( #9524 )
...
Resolves Issue #8357
### Implementation
Following the existing `onResize` callback pattern in
`TerminalSplitTreeView`, I added an `onEqualize` callback to
`SplitView`. When a divider is double-tapped, the callback retrieves a
surface from that `TerminalView`'s `SplitTree` and calls `splitEqualize`
to equalize the entire tree.
### Context
There is an existing PR #8364 that implements this feature but uses
`focusedSurface`, which doesn't work for unfocused windows. Since that
PR has been inactive for a few months after requested changes, I've
implemented this alternative approach.
Credit to @liby for that initial implementation!
### AI Usage
I chatted with Claude Code in Plan mode to understand the relationship
between surfaces and the split tree/split views, but I wrote all the
code myself.
### Screenshot
https://github.com/user-attachments/assets/0efd70ef-c90e-4b50-b853-b05e2ca2be67
2025-11-09 09:07:09 +01:00
Daniel Wennberg
e3ff49e653
macOS: Update core surface size when config changes
2025-11-08 23:34:56 -08:00
Sean Kelly
e298620828
macOS: equalize splits when double tapping on SplitView divider
2025-11-08 23:16:16 -08:00
Daniel Wennberg
5845a7bd29
macOS: Update core surface size when scroller style changes
2025-11-08 22:41:59 -08:00
Daniel Wennberg
3142c5aa60
macOS: Don't clip surfaceView to contentView
...
Fixes #9248
2025-11-08 09:34:02 -08:00
Mitchell Hashimoto
12c8b6c1aa
macOS: Refactor scrollview to preserve state across split tree changes ( #9446 )
...
Fixes #9444
2025-11-07 15:10:45 -08:00
Mitchell Hashimoto
f54c3d9209
macOS: set the macos-icon from a separate thread ( #9485 )
...
Closes #8793
2025-11-06 09:55:57 -07:00
Lars
98ae1dbd10
macOS: fix Dictation icon starting above the text, not below
...
Partially fixes #8493 .
After dictating some texts, the icon still appears above, but it will return to its right position after resizing or `\n` (saying newline, not hitting enter).
This behaviour is better than before, where the icon always appeared above.
### Reference:
9e905357bb/src/nsterm.m (L7426)
2025-11-05 18:22:08 +01:00
Lars
7472fb7732
macOS: set the macos-icon from a separate thread
2025-11-05 12:27:35 +01:00
Daniel Wennberg
afc64f6285
Refactor scrollview to preserve state across split tree changes
2025-11-04 00:02:21 -08:00
Daniel Wennberg
9002c5dbd2
Preserve surface content size across backing updates
2025-11-04 00:02:21 -08:00
Daniel Wennberg
d678e2e305
Use notifications to deal with NSScrollPocket
2025-11-04 00:02:21 -08:00
Mitchell Hashimoto
901708e8da
input: write_*_file actions take an optional format
...
Fixes #9398
2025-10-31 09:49:59 -07:00
Daniel Wennberg
951374cd1c
Fix documentView padding calculations
2025-10-31 00:39:03 -07:00
Mitchell Hashimoto
5c1f036613
macos: assert only one text-plain gets written to clipboard
2025-10-30 15:16:15 -07:00
Mitchell Hashimoto
0f1c46e4a4
macos: support setting multiple clipboard content types
2025-10-30 14:01:58 -07:00
Daniel Wennberg
88444d4bd7
macOS: Adjust documentView padding on layout changes
2025-10-27 10:43:47 -07:00
Lukas
fd969b53a5
macOS: fix #8282 ( #9343 )
...
After `ghostty_app_update_config`, `ghostty_action_config_change_s` was
fired with the correct config. This happens synchronously, which will
update `App.config` in `App.configChange(_:target:v:)`.
Previously, after updating, `App.config` was set with the stale one,
which caused #8282 .
2025-10-25 20:08:32 -07:00
Daniel Wennberg
e2fe0cf53a
macOS: remove scroll edge styling with hidden titlebar ( #9317 )
...
With `macos-titlebar-style = hidden`, creating splits or cycling
fullscreen sometimes produces a transparent overlay in the titlebar
area, clipping the top of the surfaces:
<img width="504" height="272" alt="Screenshot 2025-10-22 at 21 27 28"
src="https://github.com/user-attachments/assets/e28c5226-2e47-4c1d-8c14-b286fdb261f3 "
/>
This is actually SwiftUI styling for scroll views, and the fact that it
pops up even though the titlebar is hidden is possibly a SwiftUI bug; at
least it's causing frustration for others too, see
https://developer.apple.com/forums/thread/798392 and
https://stackoverflow.com/questions/79776037/strange-nsscrollpocket-height-on-my-nstableview-in-fullscreen-mode-on-macos-taho .
I tried setting `.scrollEdgeEffectHidden()` on various nodes in the
SwiftUI hierarchy, but couldn't get it to work, so I ended up resorting
to an old-fashioned game of imperative whack-a-mole. Now:
<img width="504" height="272" alt="Screenshot 2025-10-22 at 21 28 47"
src="https://github.com/user-attachments/assets/e4499f16-5bd0-43cd-a7de-37fbc56eb1c4 "
/>
AI disclosure (my first!): I consulted copilot trying to figure out of
the whole SwiftUI/AppKit situation and whether there might be a
declarative solution on the SwiftUI side. Just chatting in general terms
without showing real-world code. No dice.
2025-10-23 08:33:39 -07:00
Mitchell Hashimoto
014de2992e
macos: goto_split direction is performable ( #9284 )
...
Fixes #9283
There was a comment here noting this deficiency. GTK implements this
properly.
2025-10-19 20:29:36 -07:00
Mitchell Hashimoto
5b7f145640
macos: make terminal smaller to account for legacy scrollbar
...
When the preferred scrollbar style is "legacy", the scrollbar takes up
space that offsets the actual terminal. To prevent reflow, we detect
this before the scrollbar becomes visible and shrink our terminal width
to prepare for it.
This doesn't account for the style changing at runtime, yet.
2025-10-17 20:08:03 -07:00