Fullscreen window (Re: Thread safety when rendering on a separate thread)

Pekka Paalanen ppaalanen at gmail.com
Fri Jan 31 10:40:31 UTC 2020

On Fri, 31 Jan 2020 10:05:16 +0100
Guillermo Rodriguez <guillerodriguez.dev at gmail.com> wrote:

> El vie., 31 ene. 2020 a las 9:44, Pekka Paalanen
> (<ppaalanen at gmail.com>) escribió:
> >
> > On Thu, 30 Jan 2020 17:48:54 +0100
> > Guillermo Rodriguez <guillerodriguez.dev at gmail.com> wrote:
> >  
> > > Hi,
> > >
> > > El jue., 30 ene. 2020 a las 16:48, Pekka Paalanen
> > > (<ppaalanen at gmail.com>) escribió:  
> >  
> > > Uhm, I am not sure to understand this bit. Based on your comments
> > > before I am assuming I would implement this as a plugin / addon,
> > > instead of hacking shell.c.
> > > So if my plugin / addon creates a new layer, how do I make Weston
> > > "aware" of this layer ?  
> >
> > Hi,
> >
> > Weston core handles layers, desktop-shell et al. just manipulate them.
> >
> > Look for 'struct weston_layer' and 'enum weston_layer_position'. A
> > plugin can basically invent a new layer, hook it up and assing it a
> > position (stacking order) from the enum values or any other value in
> > between. The enum is there to give some idea of what layers generally
> > might exist and how they are ordered so you can pick a suitable
> > position value.
> >  
> Yes, but doesn't desktop-shell need to be aware of these new layers?

It is supposed to not to, but I suppose it could also inspect the list
of layers.

> For example, when the screen is locked, desktop-shell hides the layers
> it knows about and shows the lock layer. If my plugin invents a new
> layer and hooks it up, desktop-shell will not know anything about it
> and it will not be hidden when the screen is locked...

Yes, that can be an issue. Some kind of cooperation is always
necessary, even if just to stay off of each others' toes. In that case,
either the lock screen could make sure to cover everything, or the
other plugin needs to subscribe to screenlock actions. I don't think
either is actually implemented today.

In cases where the upstream desktop-shell plugin does not suit you, you
are intended to be able to replace it with your own. You could start by
forking the upstream one and making small changes, or writing a new one
from scratch. This is different from the extra plugin approach I
suggested earlier, where you simply add your own plugin into the mix. A
shell plugin is a special type of plugin which Weston can load only one
at a time, containing the window management for all normal windows and
the general desktop behaviour like workspaces etc.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20200131/5762b5e9/attachment.sig>

More information about the wayland-devel mailing list