What we do and don't expose to client toolkits
Christopher James Halse Rogers
chris at cooperteam.net
Sun Sep 4 04:36:28 UTC 2016
On Thu, Sep 1, 2016 at 9:02 PM, Alan Griffiths
<alan.griffiths at canonical.com> wrote:
> When clients toolkits provide hints to place child surfaces using the
> existing functions:
>
>> mir_surface_spec_attach_to_foreign_parent();
>> mir_connection_create_spec_for_tip();
>> mir_connection_create_spec_for_menu(); or the proposed,
>> mir_surface_spec_set_placement()
>>
> the toolkit wants to know where the child surface actually ends up in
> order to render appropriately.
>
> We currently have a policy not to provide any location information to
> clients, so I want to be sure that I don't propose anything
> controversial.
>
> In discussion with Chris he suggests that sending a
> PlacementRelativeToParent{dx, dy} message is the right solution.
>
> Doing this opens up an opportunity for clients to:
>
>> 1. probe the display boundaries using dummy placement requests. (The
>> point is to provide the location before they render.)
>> 2. parent (and place) everything they do on a fullscreen surface
>> (which they can conceal from the user). It does limit them to
>> surface types that can be parented.
>>
Note step 1 here is unnecessary, and clients can quite happily do this
already - they can already position all their surfaces relative to a
transparent fullscreen surface. The probing is unnecessary - the know
where the boundary of their surface is, and that it's the boundary of
the output.
More information about the Mir-devel
mailing list