This really depends on how you instantiate
TooltipWindow. If you have
TooltipWindow as a member variable of your plug-in Editor then multiple tooltip windows will appear (because you have multiple instances of them for each editor instance). The correct way to do this in a plug-in is to use a
SharedResourcePointer of a
TooltipWindow. I've now added a comment to the
TooltipWindow code to clarify this.
I think we use very little statically typed objects and - if we do - we try to make it clear in the documentation. For example, the default look and feel is part of the
Desktop class. The documentation of this class (see for example
Desktop::getInstance) states that this is a singleton class. If you find any places where this is missing then please report this and we will fix the documentation.
There are singleton macros within JUCE and I don't think we always use them consistently. It might be a good idea for us to replace all static member variables being used in a singleton-type manner with the
juce_ImplementSingleton macros - or some other method to annotate them. This would make it far easier for JUCE devs to search the code base for singletons. I'll add it to our backlog.