Короче, есть программа, у неё есть главное окно, в котором происходит какой-то экшн. Нам видеть этот экшн постоянно не обязательно, поэтому у программа обитает в трее.
1. При свёртывании окна, оное попадает на панель задач. При закрытии окна через крестик, оно исчезает, но в трее появляется иконка. При двойном щелчке по иконке в трее окно снова показывается на экране. Через меню иконки в трее, через меню в окне программы, а так же при нажатии на крестик с зажатым шифтом, программу можно окончательно закрыть.
2. При закрытии окна через крестик, программа закрывается. При свёртывании окна, оно исчезает, но в трее появляется иконка. При двойном щелчке по иконке в трее окно снова показывается на экране.
Опционально иконка в трее может показываться всегда.
Собственно, на какой стороне ты?
От себя скажу, что второй вариант лично мне кажется более интуитивным, но в том же время реализация первого варианта не вызывала у меня головной боли от того, что вылезло ещё что-то, что я не учла.
Я на маке уже давно привык, что окно это просто окно, а программа - программа. Можно окно закрыть, а программа работает. И в винде, в принципе, я тоже с этим проблем не вижу.