We had a kickoff meeting for the project yesterday, here are the notes.
GSoC 2024: MacOS UI/UX improvements - Kickoff Meeting
Present: Jonas Holzman, Julian Eisel, Raul Fernandez
Why the project got accepted
- Solid proposal, promising contributor
- MacOS UI contributor/contributions needed generally
- But: Objections against the proposed changes
- Menu bar: We probably don’t want this at all
- Title bar: Generally interesting, UI module would like to have an own title bar. But a lot of design questions to be answered.
- Julian’s point: GSoC is explicitly not about getting cool features, but about getting contributors for open source development. There’s potential for longer term contributions besides the project (kinda: accept contributor more than the project).
- So: Accepted project, but focus on client side decorations (CSD) / title bar:
- Prototyping for title bar/ CSD
- API design for controlling & drawing into title bar
- If at the end we have good knowledge of how to implement custom title bars in Blender, that’s a great outcome. More is bonus.
- Julian and Raul will mentor
Communication
- Thomas: Development Coordinator
- Public by default
- Which chat channel to use? UI module? Separate channel? Check with Thomas
- Weekly reports
- Weekly sync up meetings
Process
- As much as possible in main branch. Might be difficult bc of the nature of the project.
- Expect regular commits, daily if possible. WIP changes allowed.
- Single project PR, more PRs as useful/needed
- It’s fine to work on other MacOS/UI improvements (e.g. refactoring Ghost Cocoa code). But focus shouldn’t derail too much.
Next Week(s) Planning
- 1st two weeks: Prototyping & API research
- Focus on biggest uncertainties (e.g. adding space to drag)
Potential Issues
- Extending the topbar into window decorations
- How to handle window buttons? Different position/size on different platform etc
- How does macOS know we clicked on empty space for dragging the window? Is the event tagged as consumed? Can you add dragging hotspots? Something to investigate.
- Window controls should remain interactive if Blender is frozen, avoid handling in own UI/window-manager code
- Design: Windows without topbar? Preferences etc
- Design: Where to place the file path, Blender version etc?