> I do have some concerns about having a Null/SkeletonWindowManager in the first
> place (at least as a public production interface), though. Allowing users to
> inherit from such a class, creates a coupling with the implementation, which I
> am not convinced is worth it for what this class has to offer (at the moment
> at least). Why, as things stand, do we want to offer SkeletonWindowManager vs
> just offering the WindowManager interface?
As the window manager has to implement some minimal (as opposed to null) behavior I think we should provide this (as opposed to documenting it).
The use comes in two places:
1. the default window management logic is inconvenient for a number of our acceptance tests (e.g. they don't expect surfaces to be resized or placed). These use SkeletonWindowManager to disable the default.
2. Unity8 also finds the default window management logic is inconvenient and, as it currently uses different (older) customization points[*]. NullWindowManager provides a simple way to disable the default.
[*] It is very plausible that, after 0.13, Unity8 will be able to migrate to using the WindowManager interface for customizing window management (and we will then remove the interfaces it currently employs).
> I do have some concerns about having a Null/SkeletonWi ndowManager in the first anager vs
> place (at least as a public production interface), though. Allowing users to
> inherit from such a class, creates a coupling with the implementation, which I
> am not convinced is worth it for what this class has to offer (at the moment
> at least). Why, as things stand, do we want to offer SkeletonWindowM
> just offering the WindowManager interface?
As the window manager has to implement some minimal (as opposed to null) behavior I think we should provide this (as opposed to documenting it).
The use comes in two places:
1. the default window management logic is inconvenient for a number of our acceptance tests (e.g. they don't expect surfaces to be resized or placed). These use SkeletonWindowM anager to disable the default.
2. Unity8 also finds the default window management logic is inconvenient and, as it currently uses different (older) customization points[*]. NullWindowManager provides a simple way to disable the default.
[*] It is very plausible that, after 0.13, Unity8 will be able to migrate to using the WindowManager interface for customizing window management (and we will then remove the interfaces it currently employs).