GSoC 2024: Improvements to the Blender macOS User Interface Experience - Weekly Reports

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?
5 Likes