Make PhocViewChild a GObject and derive PhocSubsurface and PhocXdgPopup from it
Prompted by the blurry popup fixed in !546 (merged) I looked into unifying the PhocViewChild logic between PhocXdgPopup and PhocSubsurface. We basically replace the open coded inheritance by using GObject which allows us to drop the ViewChildImpl struct.
As result not only this but also the subsurface creation logic used by PhocViews and PhocViewChilds became simpler.
There's some more goodies in the MR like making the doc generation more strict. See commit messages for details.
This is the rough flow:
- Make
PhocViewChildaGObjectin it's own compilation unit - Add properties so "derived" types can become GObjects too
- Make
PhocSubsurfaceandPhocXdgPopupGObjects too - Move
PhocViewChilds public functions over - Use
finalizeandconstructedinstead of home grown implementations - Add virtual functions for to reduce duplication and so we can drop the custom "interface"
- Move Popup into it's own compilation unit (now that things are sufficiently disentangled)
- (take a short detour to get rid of non-prefixed public functions)
- Disentangle/deduplicate subsurface creation so we can
- Finally drop
phoc_view_child_setup - Move
PhocSubsurfaceinto it's own compilation unit too - Cleanup some more things
This is currently on top of !546 (merged) .