[PATCH weston 09/11] shell: Manage toplevel surfaces on all workspaces in one list

Bill Spitzak spitzak at gmail.com
Sat Jan 26 08:34:33 PST 2013

On 01/26/2013 06:33 AM, Jonas Ådahl wrote:
> Instead of linking and unlinking per-workspace layers to the output
> cycle, keep all toplevel surfaces in one per-shell list. Shell surfaces
> now has a visibility flag, and surfaces that has visibility set to true
> will be added to a reintroduced toplevel layer.
> Changing active workspace corresponds to updating the visibility flag
> and marking the toplevel layer as dirty. Before an output repaint, if
> the toplevel has been marked as dirty, the shell will repopulate the
> toplevel surface with visible surfaces.
> Structuring surfaces this way as the benefit of simple stacking order
> across outputs.
> Black surfaces are currently managed as a special case, stacked on the
> toplevel layer beneath a fullscreen surface in the pre output repaint
> hook.

Could fullscreen be considered a "workspace" rather than using this 
black window? Ie showing a fullscreen window is as though you switched 
that output to a workspace that contains only that window. This would 
get rid of the black surface, instead the desktop surface would be used 
for this.

I personally feel that fullscreen should mean "it goes above the panel" 
and thus transparent areas will still show the panel, other windows, and 
the desktop. If you want full speed of direct mapping then the 
fullscreen window should be opaque (or at least claim to be opaque by 
setting the opaque region to the full size).

But if fullscreen is intended to hide everything else, it sure sounds 
like a "workspace" to me.

More information about the wayland-devel mailing list