Where do we validate surface attributes?

Alberto Aguirre alberto.aguirre at canonical.com
Wed Jul 1 18:45:27 UTC 2015

On Tue, Jun 30, 2015 at 11:35 PM, Christopher James Halse Rogers <
chris at cooperteam.net> wrote:

> On Wed, Jul 1, 2015 at 3:36 AM, Alberto Aguirre <
> alberto.aguirre at canonical.com> wrote:
>> I think we should avoid replicating validation rules when possible,
>> because in the end, validation is really up to the window manager policy -
>> its the one entity which knows the valid combination of parameters.
> I don't think this should be true, and it certainly *wasn't* true when we
> had a constrained client API.
I guess I disagree. We have a core policy object that shells should reuse,
in which we can just centralize the validation of parameters.

> There are certainly *some* attributes that are going to be shell-specific
> - window sizes, fullscreen placement, and so on - but I think there's a
> core that aren't. It doesn't make sense to make a menu surface without a
> parent, and so on.

Yes, but I still think that core lives in the window manager policy that we
already have in mir, which shells should use.

> Our client API isn't usable if we don't have defined semantics for various
> things - how does input interact with having a menu open? What happens if
> you make a menu with a menu as a parent? What happens if you close a menu?
> For the benefit of both clients and shells it would be good if we
> implemented at least some of this in Mir. A correct shell will need to have
> this behaviour, and clients will need to be able to depend on this
> behaviour.

We do, that's the core window management policy that shells should use (and
indeed qtmir will use).

> The semantic content of our API is not just there so that shells can do
> the right thing when a client creates a parented-dialog; it's also there so
> that clients can know what the right thing is.
> Agreed, however, only up to a certain set of shell types (i.e. unity/gtk
like, 2D windowing thingies).  A completely different shell (say a VR
shell) may have completely different client semantics anyway - the question
is do we want to support such things?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/mir-devel/attachments/20150701/5b1b67ec/attachment.html>

More information about the Mir-devel mailing list