avarayr
f5b923573d
macOS: move search result counter inside text field
...
Move the search result counter (e.g. "1/30") inside the search text
field using an overlay, preventing layout shift when results appear.
This PR was authored with Claude Code.
2025-11-26 13:04:05 -05:00
Mitchell Hashimoto
5b4394d211
macos: end_search for ending search
2025-11-26 08:57:24 -08:00
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