shell: Virtual workspaces
A workspace is a list of top level surfaces visible at a time. New
toplevel surfaces are added to the current workspace. Default
keybindings (modifier - Up, modifier - Down, modifier - F1 up to F6) are
used for navigating between workspaces. By default a single workspace is
created.
Surfaces of inactive workspaces have their outputs NULL:ed so that frame
callbacks gets queued instead of emitted. When workspace gets visible
again surface's outputs are assigned.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
diff --git a/src/compositor.c b/src/compositor.c
index de8c605..51347dc 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1125,7 +1125,8 @@
weston_layer_init(struct weston_layer *layer, struct wl_list *below)
{
wl_list_init(&layer->surface_list);
- wl_list_insert(below, &layer->link);
+ if (below != NULL)
+ wl_list_insert(below, &layer->link);
}
WL_EXPORT void