Avoid QPointer in return types of Input methods
QPointer is a really useful way to store a pointer over time. It doesn't make have any value as a return value used by a short-lived method. There isn't a good copy constructor, it's effectively the same as creating a new QWeakPointer reference that has to be cleaned up. Testing if something is null is still the same. A new QPointer can be made by the caller if it actually is needed. Input handling is a very hot path called many times a frame, so it's important to keep this light. focus() and at() are called a lot which added up to slightly over 1% of CPU time when moving the mouse about.
parent
e563b83b