I have rebased the patch by Eric/Olivier. I have also applied the second patch by Olivier, which adds annotations.
With the second patch, I changed one thing: I kept the "icon_name" parameter naming as suggested by @andreldm
- Clarify static GarconMenuSeparator *separator = NULL; vs. the patch
- Returns: (transfer full) (nullable): a #GarconMenu or %NULL. -> really transfer full?