On Mon, Jan 27, 2014 at 09:46:49PM +0200, Giulio Camuffo wrote: > This introduces a new struct, weston_layer_entry, which is now used > in place of wl_list to keep the link for the layer list in weston_view > and the head of the list in weston_layer. > weston_layer_entry also has a weston_layer*, which points to the layer > the view is in or, in the case the entry it's the head of the list, to > the layer itself.
Both patches appear to compile without adding warnings, and no new failures turn up via make check with this patch applied, so: Tested-by: Bryce Harrington <b.harring...@samsung.com> > --- > desktop-shell/exposay.c | 4 +- > desktop-shell/input-panel.c | 11 +++-- > desktop-shell/shell.c | 115 > +++++++++++++++++++++++--------------------- > src/compositor.c | 33 ++++++++++--- > src/compositor.h | 14 +++++- > src/data-device.c | 6 +-- > src/input.c | 4 +- > tests/weston-test.c | 6 +-- > 8 files changed, 114 insertions(+), 79 deletions(-) > > diff --git a/desktop-shell/exposay.c b/desktop-shell/exposay.c > index fe7a3a7..5e4b341 100644 > --- a/desktop-shell/exposay.c > +++ b/desktop-shell/exposay.c > @@ -192,7 +192,7 @@ exposay_layout(struct desktop_shell *shell) > wl_list_init(&shell->exposay.surface_list); > > shell->exposay.num_surfaces = 0; > - wl_list_for_each(view, &workspace->layer.view_list, layer_link) { > + wl_list_for_each(view, &workspace->layer.view_list.link, > layer_link.link) { > if (!get_shell_surface(view->surface)) > continue; > shell->exposay.num_surfaces++; > @@ -243,7 +243,7 @@ exposay_layout(struct desktop_shell *shell) > shell->exposay.surface_size = output->height / 2; > > i = 0; > - wl_list_for_each(view, &workspace->layer.view_list, layer_link) { > + wl_list_for_each(view, &workspace->layer.view_list.link, > layer_link.link) { > int pad; > > pad = shell->exposay.surface_size + > shell->exposay.padding_inner; > diff --git a/desktop-shell/input-panel.c b/desktop-shell/input-panel.c > index c08a403..d97a248 100644 > --- a/desktop-shell/input-panel.c > +++ b/desktop-shell/input-panel.c > @@ -70,8 +70,8 @@ show_input_panels(struct wl_listener *listener, void *data) > &shell->input_panel.surfaces, link) { > if (ipsurf->surface->width == 0) > continue; > - wl_list_insert(&shell->input_panel_layer.view_list, > - &ipsurf->view->layer_link); > + weston_layer_entry_insert(&shell->input_panel_layer.view_list, > + &ipsurf->view->layer_link); > weston_view_geometry_dirty(ipsurf->view); > weston_view_update_transform(ipsurf->view); > weston_surface_damage(ipsurf->surface); > @@ -97,7 +97,8 @@ hide_input_panels(struct wl_listener *listener, void *data) > wl_list_remove(&shell->input_panel_layer.link); > > wl_list_for_each_safe(view, next, > - &shell->input_panel_layer.view_list, layer_link) > + &shell->input_panel_layer.view_list.link, > + layer_link.link) > weston_view_unmap(view); > } > > @@ -136,8 +137,8 @@ input_panel_configure(struct weston_surface *surface, > int32_t sx, int32_t sy) > weston_view_set_position(ip_surface->view, x, y); > > if (!weston_surface_is_mapped(surface) && shell->showing_input_panels) { > - wl_list_insert(&shell->input_panel_layer.view_list, > - &ip_surface->view->layer_link); > + weston_layer_entry_insert(&shell->input_panel_layer.view_list, > + &ip_surface->view->layer_link); > weston_view_update_transform(ip_surface->view); > weston_surface_damage(surface); > weston_slide_run(ip_surface->view, > ip_surface->view->surface->height * 0.9, 0, NULL, NULL); > diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c > index c275543..51cb298 100644 > --- a/desktop-shell/shell.c > +++ b/desktop-shell/shell.c > @@ -266,12 +266,12 @@ shell_surface_is_top_fullscreen(struct shell_surface > *shsurf) > > shell = shell_surface_get_shell(shsurf); > > - if (wl_list_empty(&shell->fullscreen_layer.view_list)) > + if (wl_list_empty(&shell->fullscreen_layer.view_list.link)) > return false; > > - top_fs_ev = container_of(shell->fullscreen_layer.view_list.next, > + top_fs_ev = container_of(shell->fullscreen_layer.view_list.link.next, > struct weston_view, > - layer_link); > + layer_link.link); > return (shsurf == get_shell_surface(top_fs_ev->surface)); > } > > @@ -594,7 +594,8 @@ focus_state_surface_destroy(struct wl_listener *listener, > void *data) > main_surface = weston_surface_get_main_surface(state->keyboard_focus); > > next = NULL; > - wl_list_for_each(view, &state->ws->layer.view_list, layer_link) { > + wl_list_for_each(view, > + &state->ws->layer.view_list.link, layer_link.link) { > if (view->surface == main_surface) > continue; > if (is_focus_view(view)) > @@ -750,8 +751,8 @@ animate_focus_change(struct desktop_shell *shell, struct > workspace *ws, > > focus_surface_created = true; > } else { > - wl_list_remove(&ws->fsurf_front->view->layer_link); > - wl_list_remove(&ws->fsurf_back->view->layer_link); > + weston_layer_entry_remove(&ws->fsurf_front->view->layer_link); > + weston_layer_entry_remove(&ws->fsurf_back->view->layer_link); > } > > if (ws->focus_animation) { > @@ -760,11 +761,11 @@ animate_focus_change(struct desktop_shell *shell, > struct workspace *ws, > } > > if (to) > - wl_list_insert(&to->layer_link, > - &ws->fsurf_front->view->layer_link); > + weston_layer_entry_insert(&to->layer_link, > + &ws->fsurf_front->view->layer_link); > else if (from) > - wl_list_insert(&ws->layer.view_list, > - &ws->fsurf_front->view->layer_link); > + weston_layer_entry_insert(&ws->layer.view_list, > + &ws->fsurf_front->view->layer_link); > > if (focus_surface_created) { > ws->focus_animation = weston_fade_run( > @@ -772,15 +773,15 @@ animate_focus_change(struct desktop_shell *shell, > struct workspace *ws, > ws->fsurf_front->view->alpha, 0.6, 300, > focus_animation_done, ws); > } else if (from) { > - wl_list_insert(&from->layer_link, > - &ws->fsurf_back->view->layer_link); > + weston_layer_entry_insert(&from->layer_link, > + &ws->fsurf_back->view->layer_link); > ws->focus_animation = weston_stable_fade_run( > ws->fsurf_front->view, 0.0, > ws->fsurf_back->view, 0.6, > focus_animation_done, ws); > } else if (to) { > - wl_list_insert(&ws->layer.view_list, > - &ws->fsurf_back->view->layer_link); > + weston_layer_entry_insert(&ws->layer.view_list, > + &ws->fsurf_back->view->layer_link); > ws->focus_animation = weston_stable_fade_run( > ws->fsurf_front->view, 0.0, > ws->fsurf_back->view, 0.6, > @@ -840,7 +841,7 @@ workspace_create(void) > static int > workspace_is_empty(struct workspace *ws) > { > - return wl_list_empty(&ws->layer.view_list); > + return wl_list_empty(&ws->layer.view_list.link); > } > > static struct workspace * > @@ -905,7 +906,7 @@ workspace_translate_out(struct workspace *ws, double > fraction) > unsigned int height; > double d; > > - wl_list_for_each(view, &ws->layer.view_list, layer_link) { > + wl_list_for_each(view, &ws->layer.view_list.link, layer_link.link) { > height = get_output_height(view->surface->output); > d = height * fraction; > > @@ -920,7 +921,7 @@ workspace_translate_in(struct workspace *ws, double > fraction) > unsigned int height; > double d; > > - wl_list_for_each(view, &ws->layer.view_list, layer_link) { > + wl_list_for_each(view, &ws->layer.view_list.link, layer_link.link) { > height = get_output_height(view->surface->output); > > if (fraction > 0) > @@ -965,7 +966,7 @@ workspace_deactivate_transforms(struct workspace *ws) > struct weston_view *view; > struct weston_transform *transform; > > - wl_list_for_each(view, &ws->layer.view_list, layer_link) { > + wl_list_for_each(view, &ws->layer.view_list.link, layer_link.link) { > if (is_focus_view(view)) { > struct focus_surface *fsurf = > get_focus_surface(view->surface); > transform = &fsurf->workspace_transform; > @@ -1105,7 +1106,7 @@ change_workspace(struct desktop_shell *shell, unsigned > int index) > return; > > /* Don't change workspace when there is any fullscreen surfaces. */ > - if (!wl_list_empty(&shell->fullscreen_layer.view_list)) > + if (!wl_list_empty(&shell->fullscreen_layer.view_list.link)) > return; > > from = get_current_workspace(shell); > @@ -1149,7 +1150,7 @@ change_workspace(struct desktop_shell *shell, unsigned > int index) > static bool > workspace_has_only(struct workspace *ws, struct weston_surface *surface) > { > - struct wl_list *list = &ws->layer.view_list; > + struct wl_list *list = &ws->layer.view_list.link; > struct wl_list *e; > > if (wl_list_empty(list)) > @@ -1160,7 +1161,7 @@ workspace_has_only(struct workspace *ws, struct > weston_surface *surface) > if (e->next != list) > return false; > > - return container_of(e, struct weston_view, layer_link)->surface == > surface; > + return container_of(e, struct weston_view, layer_link.link)->surface == > surface; > } > > static void > @@ -1189,8 +1190,8 @@ move_surface_to_workspace(struct desktop_shell *shell, > from = get_current_workspace(shell); > to = get_workspace(shell, workspace); > > - wl_list_remove(&view->layer_link); > - wl_list_insert(&to->layer.view_list, &view->layer_link); > + weston_layer_entry_remove(&view->layer_link); > + weston_layer_entry_insert(&to->layer.view_list, &view->layer_link); > > shell_surface_update_child_surface_layers(shsurf); > > @@ -1229,8 +1230,8 @@ take_surface_to_workspace_by_seat(struct desktop_shell > *shell, > from = get_current_workspace(shell); > to = get_workspace(shell, index); > > - wl_list_remove(&view->layer_link); > - wl_list_insert(&to->layer.view_list, &view->layer_link); > + weston_layer_entry_remove(&view->layer_link); > + weston_layer_entry_insert(&to->layer.view_list, &view->layer_link); > > shsurf = get_shell_surface(surface); > if (shsurf != NULL) > @@ -2014,7 +2015,7 @@ get_output_panel_height(struct desktop_shell *shell, > if (!output) > return 0; > > - wl_list_for_each(view, &shell->panel_layer.view_list, layer_link) { > + wl_list_for_each(view, &shell->panel_layer.view_list.link, > layer_link.link) { > if (view->surface->output == output) { > panel_height = view->surface->height; > break; > @@ -2027,7 +2028,7 @@ get_output_panel_height(struct desktop_shell *shell, > /* The surface will be inserted into the list immediately after the link > * returned by this function (i.e. will be stacked immediately above the > * returned link). */ > -static struct wl_list * > +static struct weston_layer_entry * > shell_surface_calculate_layer_link (struct shell_surface *shsurf) > { > struct workspace *ws; > @@ -2047,7 +2048,8 @@ shell_surface_calculate_layer_link (struct > shell_surface *shsurf) > /* TODO: Handle a parent with multiple views */ > parent = get_default_view(shsurf->parent); > if (parent) > - return parent->layer_link.prev; > + return > container_of(parent->layer_link.link.prev, > + struct weston_layer_entry, > link); > } > break; > > @@ -2071,15 +2073,18 @@ static void > shell_surface_update_child_surface_layers (struct shell_surface *shsurf) > { > struct shell_surface *child; > + struct weston_layer_entry *prev; > > /* Move the child layers to the same workspace as shsurf. They will be > * stacked above shsurf. */ > wl_list_for_each_reverse(child, &shsurf->children_list, children_link) { > - if (shsurf->view->layer_link.prev != &child->view->layer_link) { > + if (shsurf->view->layer_link.link.prev != > &child->view->layer_link.link) { > weston_view_geometry_dirty(child->view); > - wl_list_remove(&child->view->layer_link); > - wl_list_insert(shsurf->view->layer_link.prev, > - &child->view->layer_link); > + prev = container_of(shsurf->view->layer_link.link.prev, > + struct weston_layer_entry, link); > + weston_layer_entry_remove(&child->view->layer_link); > + weston_layer_entry_insert(prev, > + &child->view->layer_link); > weston_view_geometry_dirty(child->view); > weston_surface_damage(child->surface); > > @@ -2100,7 +2105,7 @@ shell_surface_update_child_surface_layers (struct > shell_surface *shsurf) > static void > shell_surface_update_layer(struct shell_surface *shsurf) > { > - struct wl_list *new_layer_link; > + struct weston_layer_entry *new_layer_link; > > new_layer_link = shell_surface_calculate_layer_link(shsurf); > > @@ -2108,8 +2113,8 @@ shell_surface_update_layer(struct shell_surface *shsurf) > return; > > weston_view_geometry_dirty(shsurf->view); > - wl_list_remove(&shsurf->view->layer_link); > - wl_list_insert(new_layer_link, &shsurf->view->layer_link); > + weston_layer_entry_remove(&shsurf->view->layer_link); > + weston_layer_entry_insert(new_layer_link, &shsurf->view->layer_link); > weston_view_geometry_dirty(shsurf->view); > weston_surface_damage(shsurf->surface); > > @@ -2528,9 +2533,9 @@ shell_ensure_fullscreen_black_view(struct shell_surface > *shsurf) > output->height); > > weston_view_geometry_dirty(shsurf->fullscreen.black_view); > - wl_list_remove(&shsurf->fullscreen.black_view->layer_link); > - wl_list_insert(&shsurf->view->layer_link, > - &shsurf->fullscreen.black_view->layer_link); > + weston_layer_entry_remove(&shsurf->fullscreen.black_view->layer_link); > + weston_layer_entry_insert(&shsurf->view->layer_link, > + &shsurf->fullscreen.black_view->layer_link); > weston_view_geometry_dirty(shsurf->fullscreen.black_view); > weston_surface_damage(shsurf->surface); > } > @@ -3568,7 +3573,7 @@ configure_static_view(struct weston_view *ev, struct > weston_layer *layer) > { > struct weston_view *v, *next; > > - wl_list_for_each_safe(v, next, &layer->view_list, layer_link) { > + wl_list_for_each_safe(v, next, &layer->view_list.link, layer_link.link) > { > if (v->output == ev->output && v != ev) { > weston_view_unmap(v); > v->surface->configure = NULL; > @@ -3577,8 +3582,8 @@ configure_static_view(struct weston_view *ev, struct > weston_layer *layer) > > weston_view_set_position(ev, ev->output->x, ev->output->y); > > - if (wl_list_empty(&ev->layer_link)) { > - wl_list_insert(&layer->view_list, &ev->layer_link); > + if (wl_list_empty(&ev->layer_link.link)) { > + weston_layer_entry_insert(&layer->view_list, &ev->layer_link); > weston_compositor_schedule_repaint(ev->surface->compositor); > } > } > @@ -3683,8 +3688,8 @@ lock_surface_configure(struct weston_surface *surface, > int32_t sx, int32_t sy) > center_on_output(view, get_default_output(shell->compositor)); > > if (!weston_surface_is_mapped(surface)) { > - wl_list_insert(&shell->lock_layer.view_list, > - &view->layer_link); > + weston_layer_entry_insert(&shell->lock_layer.view_list, > + &view->layer_link); > weston_view_update_transform(view); > shell_fade(shell, FADE_IN); > } > @@ -4210,10 +4215,10 @@ lower_fullscreen_layer(struct desktop_shell *shell) > > ws = get_current_workspace(shell); > wl_list_for_each_reverse_safe(view, prev, > - &shell->fullscreen_layer.view_list, > - layer_link) { > - wl_list_remove(&view->layer_link); > - wl_list_insert(&ws->layer.view_list, &view->layer_link); > + &shell->fullscreen_layer.view_list.link, > + layer_link.link) { > + weston_layer_entry_remove(&view->layer_link); > + weston_layer_entry_insert(&ws->layer.view_list, > &view->layer_link); > weston_view_damage_below(view); > weston_surface_damage(view->surface); > } > @@ -4410,8 +4415,8 @@ shell_fade_create_surface(struct desktop_shell *shell) > weston_surface_set_size(surface, 8192, 8192); > weston_view_set_position(view, 0, 0); > weston_surface_set_color(surface, 0.0, 0.0, 0.0, 1.0); > - wl_list_insert(&compositor->fade_layer.view_list, > - &view->layer_link); > + weston_layer_entry_insert(&compositor->fade_layer.view_list, > + &view->layer_link); > pixman_region32_init(&surface->input); > > return view; > @@ -4943,6 +4948,7 @@ screensaver_configure(struct weston_surface *surface, > int32_t sx, int32_t sy) > { > struct desktop_shell *shell = surface->configure_private; > struct weston_view *view; > + struct weston_layer_entry *prev; > > if (surface->width == 0) > return; > @@ -4954,9 +4960,10 @@ screensaver_configure(struct weston_surface *surface, > int32_t sx, int32_t sy) > view = container_of(surface->views.next, struct weston_view, > surface_link); > center_on_output(view, surface->output); > > - if (wl_list_empty(&view->layer_link)) { > - wl_list_insert(shell->lock_layer.view_list.prev, > - &view->layer_link); > + if (wl_list_empty(&view->layer_link.link)) { > + prev = container_of(shell->lock_layer.view_list.link.prev, > + struct weston_layer_entry, link); > + weston_layer_entry_insert(prev, &view->layer_link); > weston_view_update_transform(view); > wl_event_source_timer_update(shell->screensaver.timer, > shell->screensaver.duration); > @@ -5035,7 +5042,7 @@ switcher_next(struct switcher *switcher) > struct shell_surface *shsurf; > struct workspace *ws = get_current_workspace(switcher->shell); > > - wl_list_for_each(view, &ws->layer.view_list, layer_link) { > + wl_list_for_each(view, &ws->layer.view_list.link, layer_link.link) { > shsurf = get_shell_surface(view->surface); > if (shsurf && > shsurf->type == SHELL_SURFACE_TOPLEVEL && > @@ -5091,7 +5098,7 @@ switcher_destroy(struct switcher *switcher) > struct weston_keyboard *keyboard = switcher->grab.keyboard; > struct workspace *ws = get_current_workspace(switcher->shell); > > - wl_list_for_each(view, &ws->layer.view_list, layer_link) { > + wl_list_for_each(view, &ws->layer.view_list.link, layer_link.link) { > if (is_focus_view(view)) > continue; > > diff --git a/src/compositor.c b/src/compositor.c > index 40e4b11..9a269e5 100644 > --- a/src/compositor.c > +++ b/src/compositor.c > @@ -437,9 +437,10 @@ weston_view_create(struct weston_surface *surface) > > wl_signal_init(&view->destroy_signal); > wl_list_init(&view->link); > - wl_list_init(&view->layer_link); > + wl_list_init(&view->layer_link.link); > > view->plane = NULL; > + view->layer_link.layer = NULL; > > pixman_region32_init(&view->clip); > > @@ -1375,8 +1376,7 @@ weston_view_unmap(struct weston_view *view) > weston_view_damage_below(view); > view->output = NULL; > view->plane = NULL; > - wl_list_remove(&view->layer_link); > - wl_list_init(&view->layer_link); > + weston_layer_entry_remove(&view->layer_link); > wl_list_remove(&view->link); > wl_list_init(&view->link); > wl_list_remove(&view->output_move_listener.link); > @@ -1430,7 +1430,7 @@ weston_view_destroy(struct weston_view *view) > } > > wl_list_remove(&view->link); > - wl_list_remove(&view->layer_link); > + weston_layer_entry_remove(&view->layer_link); > > pixman_region32_fini(&view->clip); > pixman_region32_fini(&view->transform.boundingbox); > @@ -1796,18 +1796,18 @@ weston_compositor_build_view_list(struct > weston_compositor *compositor) > struct weston_layer *layer; > > wl_list_for_each(layer, &compositor->layer_list, link) > - wl_list_for_each(view, &layer->view_list, layer_link) > + wl_list_for_each(view, &layer->view_list.link, layer_link.link) > surface_stash_subsurface_views(view->surface); > > wl_list_init(&compositor->view_list); > wl_list_for_each(layer, &compositor->layer_list, link) { > - wl_list_for_each(view, &layer->view_list, layer_link) { > + wl_list_for_each(view, &layer->view_list.link, layer_link.link) > { > view_list_add(compositor, view); > } > } > > wl_list_for_each(layer, &compositor->layer_list, link) > - wl_list_for_each(view, &layer->view_list, layer_link) > + wl_list_for_each(view, &layer->view_list.link, layer_link.link) > surface_free_unused_subsurface_views(view->surface); > } > > @@ -1926,9 +1926,26 @@ idle_repaint(void *data) > } > > WL_EXPORT void > +weston_layer_entry_insert(struct weston_layer_entry *list, > + struct weston_layer_entry *entry) > +{ > + wl_list_insert(&list->link, &entry->link); > + entry->layer = list->layer; > +} > + > +WL_EXPORT void > +weston_layer_entry_remove(struct weston_layer_entry *entry) > +{ > + wl_list_remove(&entry->link); > + wl_list_init(&entry->link); > + entry->layer = NULL; > +} > + > +WL_EXPORT void > weston_layer_init(struct weston_layer *layer, struct wl_list *below) > { > - wl_list_init(&layer->view_list); > + wl_list_init(&layer->view_list.link); > + layer->view_list.layer = layer; > if (below != NULL) > wl_list_insert(below, &layer->link); > } > diff --git a/src/compositor.h b/src/compositor.h > index 22a485f..7140bdf 100644 > --- a/src/compositor.h > +++ b/src/compositor.h > @@ -522,8 +522,13 @@ enum { > * to off */ > }; > > +struct weston_layer_entry { > + struct wl_list link; > + struct weston_layer *layer; > +}; > + > struct weston_layer { > - struct wl_list view_list; > + struct weston_layer_entry view_list; > struct wl_list link; > }; > > @@ -762,7 +767,7 @@ struct weston_view { > struct wl_signal destroy_signal; > > struct wl_list link; > - struct wl_list layer_link; > + struct weston_layer_entry layer_link; > struct weston_plane *plane; > > pixman_region32_t clip; > @@ -1001,6 +1006,11 @@ notify_touch(struct weston_seat *seat, uint32_t time, > int touch_id, > wl_fixed_t x, wl_fixed_t y, int touch_type); > > void > +weston_layer_entry_insert(struct weston_layer_entry *list, > + struct weston_layer_entry *entry); > +void > +weston_layer_entry_remove(struct weston_layer_entry *entry); > +void > weston_layer_init(struct weston_layer *layer, struct wl_list *below); > > void > diff --git a/src/data-device.c b/src/data-device.c > index 483e22e..ce735d1 100644 > --- a/src/data-device.c > +++ b/src/data-device.c > @@ -187,7 +187,7 @@ drag_surface_configure(struct weston_drag *drag, > struct weston_surface *es, > int32_t sx, int32_t sy) > { > - struct wl_list *list; > + struct weston_layer_entry *list; > float fx, fy; > > assert((pointer != NULL && touch == NULL) || > @@ -200,8 +200,8 @@ drag_surface_configure(struct weston_drag *drag, > else > list = &es->compositor->cursor_layer.view_list; > > - wl_list_remove(&drag->icon->layer_link); > - wl_list_insert(list, &drag->icon->layer_link); > + weston_layer_entry_remove(&drag->icon->layer_link); > + weston_layer_entry_insert(list, &drag->icon->layer_link); > weston_view_update_transform(drag->icon); > empty_region(&es->pending.input); > } > diff --git a/src/input.c b/src/input.c > index 157066c..808af0d 100644 > --- a/src/input.c > +++ b/src/input.c > @@ -1531,8 +1531,8 @@ pointer_cursor_surface_configure(struct weston_surface > *es, > empty_region(&es->pending.input); > > if (!weston_surface_is_mapped(es)) { > - wl_list_insert(&es->compositor->cursor_layer.view_list, > - &pointer->sprite->layer_link); > + > weston_layer_entry_insert(&es->compositor->cursor_layer.view_list, > + &pointer->sprite->layer_link); > weston_view_update_transform(pointer->sprite); > } > } > diff --git a/tests/weston-test.c b/tests/weston-test.c > index 844059d..0268195 100644 > --- a/tests/weston-test.c > +++ b/tests/weston-test.c > @@ -87,9 +87,9 @@ test_surface_configure(struct weston_surface *surface, > int32_t sx, int32_t sy) > struct weston_test_surface *test_surface = surface->configure_private; > struct weston_test *test = test_surface->test; > > - if (wl_list_empty(&test_surface->view->layer_link)) > - wl_list_insert(&test->layer.view_list, > - &test_surface->view->layer_link); > + if (wl_list_empty(&test_surface->view->layer_link.link)) > + weston_layer_entry_insert(&test->layer.view_list, > + &test_surface->view->layer_link); > > weston_view_set_position(test_surface->view, > test_surface->x, test_surface->y); > -- > 1.8.5.3 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel