Is handle_surface_created() still needed?
Daniel van Vugt
daniel.van.vugt at canonical.com
Mon Mar 9 10:29:15 UTC 2015
scene::Surface::visible() does the first-frame check for you. Although
you probably know that already.
Be aware however; surfaces go into the Scene (SurfaceStack) immediately.
Long before they are visible().
On 09/03/15 18:10, Gerry Boland wrote:
> On 09/03/15 09:58, Alan Griffiths wrote:
>> Background:
>>
>> I've been looking at our legacy defaults for window management and came
>> across the handle_surface_created() method.
>>
>> This is used to set the focus to a session after a surface has been
>> supplied to the client but before that surface has had a frame posted.
>> Hence, in a lot of cases we are setting focus to a surface that is
>> invisible to the user.
>>
>> Both the unity downstreams (unity-system-compositor and qtmir) disable
>> this behaviour. USC replaces it with behaviour that waits for the first
>> posted frame and then sets the focus - which seems like it would make a
>> far better default. It isn't immediately obvious what Unity8 does, but
>> it doesn't use handle_surface_created().
>
> Like USC, Unity8/QtMir will only give input focus to a surface which has
> posted at least one frame.
> -G
>
>
>
More information about the Mir-devel
mailing list