desktop-shell: update for manual surface/view mapping
This is a follow up for desktop-shell to manually
set mapped status for views/surfaces it controls
v2:
- Add manual mapping to shell_fade_create_surface()
and shell_ensure_fullscreen_black_view()
Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index c125d55..c72f801 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -749,6 +749,7 @@
surface->configure = focus_surface_configure;
surface->output = output;
+ surface->is_mapped = true;
surface->configure_private = fsurf;
weston_surface_set_label_func(surface, focus_surface_get_label);
@@ -759,6 +760,7 @@
return NULL;
}
fsurf->view->output = output;
+ fsurf->view->is_mapped = true;
weston_surface_set_size(surface, output->width, output->height);
weston_view_set_position(fsurf->view, output->x, output->y);
@@ -2854,6 +2856,7 @@
weston_view_geometry_dirty(shsurf->fullscreen.black_view);
weston_surface_damage(shsurf->surface);
+ shsurf->fullscreen.black_view->is_mapped = true;
shsurf->state.lowered = false;
}
@@ -3523,11 +3526,13 @@
struct weston_touch *touch = weston_seat_get_touch(shseat->seat);
shsurf->surface->output = parent_view->output;
+ shsurf->surface->is_mapped = true;
shsurf->view->output = parent_view->output;
weston_view_set_transform_parent(shsurf->view, parent_view);
weston_view_set_position(shsurf->view, shsurf->popup.x, shsurf->popup.y);
weston_view_update_transform(shsurf->view);
+ shsurf->view->is_mapped = true;
if (pointer &&
pointer->grab_serial == shsurf->popup.serial) {
@@ -4361,6 +4366,8 @@
}
weston_view_set_position(ev, ev->output->x, ev->output->y);
+ ev->surface->is_mapped = true;
+ ev->is_mapped = true;
if (wl_list_empty(&ev->layer_link.link)) {
weston_layer_entry_insert(&layer->view_list, &ev->layer_link);
@@ -4542,6 +4549,8 @@
weston_layer_entry_insert(&shell->lock_layer.view_list,
&view->layer_link);
weston_view_update_transform(view);
+ surface->is_mapped = true;
+ view->is_mapped = true;
shell_fade(shell, FADE_IN);
}
}
@@ -5380,6 +5389,8 @@
weston_layer_entry_insert(&compositor->fade_layer.view_list,
&view->layer_link);
pixman_region32_init(&surface->input);
+ surface->is_mapped = true;
+ view->is_mapped = true;
return view;
}
@@ -5686,6 +5697,7 @@
if (shsurf->type != SHELL_SURFACE_NONE) {
weston_view_update_transform(shsurf->view);
+ shsurf->view->is_mapped = true;
if (shsurf->state.maximized) {
shsurf->surface->output = shsurf->output;
shsurf->view->output = shsurf->output;
@@ -5797,6 +5809,7 @@
if (!weston_surface_is_mapped(es)) {
map(shell, shsurf, sx, sy);
+ es->is_mapped = true;
} else if (type_changed || sx != 0 || sy != 0 ||
shsurf->last_width != es->width ||
shsurf->last_height != es->height) {