diff options
-rw-r--r-- | src/layout.c | 61 |
1 files changed, 21 insertions, 40 deletions
diff --git a/src/layout.c b/src/layout.c index ca7b7e6..fc96943 100644 --- a/src/layout.c +++ b/src/layout.c @@ -760,7 +760,7 @@ ivi_layout_fullscreen_committed(struct ivi_surface *surface) surface->state = RESIZING; weston_view_set_output(view, output->output); - weston_layer_entry_insert(&ivi->hidden.view_list, &view->layer_link); + weston_view_move_to_layer(view, &ivi->hidden.view_list); return; } @@ -779,18 +779,12 @@ ivi_layout_fullscreen_committed(struct ivi_surface *surface) /* this implies we resized correctly */ if (!weston_view_is_mapped(view) || surface->state != FULLSCREEN) { - weston_layer_entry_remove(&view->layer_link); + surface->state = FULLSCREEN; weston_view_set_output(view, woutput); weston_view_set_position(view, woutput->pos); - weston_layer_entry_insert(&ivi->fullscreen.view_list, &view->layer_link); - - wsurface->is_mapped = true; - surface->view->is_mapped = true; - surface->state = FULLSCREEN; - - weston_view_geometry_dirty(view); - weston_surface_damage(view->surface); + weston_surface_map(wsurface); + weston_view_move_to_layer(view, &ivi->fullscreen.view_list); if (ivi_seat) ivi_shell_activate_surface(surface, ivi_seat, WESTON_ACTIVATE_FLAG_NONE); @@ -909,17 +903,13 @@ ivi_layout_split_committed(struct ivi_surface *surface) weston_view_set_output(view, woutput); weston_view_set_position(view, pos); - weston_layer_entry_insert(&ivi->normal.view_list, &view->layer_link); - weston_view_geometry_dirty(view); - weston_surface_damage(view->surface); + weston_surface_map(wsurface); + weston_view_move_to_layer(view, &ivi->normal.view_list); if (ivi_seat) ivi_shell_activate_surface(surface, ivi_seat, WESTON_ACTIVATE_FLAG_NONE); - wsurface->is_mapped = true; - surface->view->is_mapped = true; - shell_advertise_app_state(ivi, app_id, NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED); @@ -980,14 +970,15 @@ ivi_layout_popup_committed(struct ivi_surface *surface) !surface->mapped) return; - if (surface->view->is_mapped || surface->state == HIDDEN) + if (weston_view_is_mapped(view) || surface->state == HIDDEN) return; assert(surface->role == IVI_SURFACE_ROLE_POPUP); /* remove it from hidden layer if present */ - if (ivi_surf_in_hidden_layer(ivi, surface)) - weston_layer_entry_remove(&view->layer_link); + if (ivi_surf_in_hidden_layer(ivi, surface)) { + weston_view_move_to_layer(view, NULL); + } weston_view_set_output(view, woutput); @@ -1003,16 +994,12 @@ ivi_layout_popup_committed(struct ivi_surface *surface) weston_view_set_mask(view, surface->popup.bb.x, surface->popup.bb.y, surface->popup.bb.width, surface->popup.bb.height); - weston_layer_entry_insert(&ivi->popup.view_list, &view->layer_link); - - weston_view_geometry_dirty(view); - weston_surface_damage(view->surface); + weston_view_move_to_layer(view, &ivi->popup.view_list); if (ivi_seat) ivi_shell_activate_surface(surface, ivi_seat, WESTON_ACTIVATE_FLAG_NONE); - wsurface->is_mapped = true; - surface->view->is_mapped = true; + weston_surface_map(wsurface); shell_advertise_app_state(ivi, app_id, NULL, AGL_SHELL_DESKTOP_APP_STATE_ACTIVATED); @@ -1032,10 +1019,8 @@ ivi_layout_popup_re_add(struct ivi_surface *surface) struct weston_surface *wsurface = weston_desktop_surface_get_surface(dsurface); - weston_layer_entry_remove(&view->layer_link); - - wsurface->is_mapped = false; - view->is_mapped = false; + weston_view_move_to_layer(view, NULL); + weston_surface_unmap(wsurface); } /* reset the activate by default in order to (still) allow the surface @@ -1058,10 +1043,8 @@ ivi_layout_fullscreen_re_add(struct ivi_surface *surface) struct weston_surface *wsurface = weston_desktop_surface_get_surface(dsurface); - weston_layer_entry_remove(&view->layer_link); - - wsurface->is_mapped = false; - view->is_mapped = false; + weston_view_move_to_layer(view, NULL); + weston_surface_unmap(wsurface); } /* reset the activate by default in order to (still) allow the surface @@ -1124,19 +1107,17 @@ ivi_layout_reset_split_surfaces(struct ivi_compositor *ivi) struct weston_view *ev = output->previous_active->view; struct weston_output *woutput = output->output; - if (!weston_view_is_mapped(ev)) + if (!weston_view_is_mapped(ev)) { weston_view_update_transform(ev); - else - weston_layer_entry_remove(&ev->layer_link); + } else { + weston_surface_map(ev->surface); + weston_view_move_to_layer(ev, &ivi->normal.view_list); + } - ev->is_mapped = true; - ev->surface->is_mapped = true; output->previous_active->mapped = true; weston_view_set_output(ev, woutput); - weston_layer_entry_insert(&ivi->normal.view_list, &ev->layer_link); - _ivi_set_shell_surface_split(output->previous_active, NULL, 0, AGL_SHELL_TILE_ORIENTATION_NONE, false, false); |