feat(macos): Refine MacOS surface drag handle UI#10280
feat(macos): Refine MacOS surface drag handle UI#10280martinemde wants to merge 3 commits intoghostty-org:mainfrom
Conversation
|
Not sure I love this extra space always existing. I am more in favor of holding down a modifier while hovering the grab handles. It's been discussed elsewhere too. |
542d36b to
8179f67
Compare
This is 4pt header space, 12pt clickable frame height
8179f67 to
2bee04a
Compare
|
Updated movie with the size adjustment. |
Agree, wouldn't want to take any space away from content, or (different idea) to shift content down temporarily (shifting content is distracting and bad). An overlay that appears either with a delay or special keystroke seems like the best option along with the option to completely disable the overlay via config such that those who don't need or want the functionality never have to see it under any scenario. |
|
In practice, I'm using about 4pts of font size in height, it's less than is often wasted by the space at the bottom of the terminal, though there's theoretically a pathological spacing where you lose a line of text because of this spacing. What I'd honestly suggest is that people pull this down and build it and see if they actually don't like it, and which one feels better. The current solution isn't just confusing, but actively harms usability of TUIs and resizing of panes by dragging. Whatever the solution, I don't think the current incarnation is right. I'm happy to try to test out some ideas or make multiple branches that people can try, but I assure you that until you use the interaction in person, the videos don't do any of them justice. Case in point, the practical lost space of even 3 panes worth of header space is virtually invisible. The additional header space feels better to me even ignoring the My point is: "press a key to show the grab handle" seems right until you try it, then it's jarring and confusing. "There's always a header space that's taken away from your terminal" sounds wrong until you use it, but it's actually kind of nice. |
This PR makes 3 small changes:
I think it looks good and works well, but I suggest trying it out since the interaction is the most important part.
Problems I was trying to solve:
Screen.Recording.2026-01-15.at.10.55.41.AM.mov
AI Disclosure: I originally did this with Claude, but at this point I've gone over this code manually enough to feel somewhat familiar. I think the video and design speak for themselves and the code change is minimal, but I'm not a Swift programmer, so I can't evaluate whether this is the best possible solution.
Human Disclosure: I don't have a linux machine to check that the padding doesn't apply outside of MacOS. I find it hard to believe that it wouldn't work, but worth calling out.