X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fdesktop.c;h=7875eb913a85a99860b0fac2bf89d88c52b46bba;hb=refs%2Fchanges%2F15%2F29615%2F6;hp=0186e9fcb78b933fd52383d4a56a9a2b84fa3b48;hpb=26700fa20abefccb77bb586b49b1629bf102e131;p=src%2Fagl-compositor.git diff --git a/src/desktop.c b/src/desktop.c index 0186e9f..7875eb9 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -30,7 +30,9 @@ #include "shared/helpers.h" #include #include +#ifdef BUILD_XWAYLAND #include +#endif #include "agl-shell-desktop-server-protocol.h" @@ -310,6 +312,7 @@ desktop_surface_removed(struct weston_desktop_surface *dsurface, void *userdata) output->area = output->area_saved; } + /* reset the active surface as well */ if (output && output->active && output->active == surface) { output->active->view->is_mapped = false; @@ -340,6 +343,14 @@ desktop_surface_removed(struct weston_desktop_surface *dsurface, void *userdata) weston_view_destroy(surface->view); } + if (surface->role == IVI_SURFACE_ROLE_TILE) { + ivi_layout_reset_split_surfaces(surface->ivi); + // activate previous when resizing back to give input set + // output active for allowing to resizing again if needed + if (output->previous_active) + ivi_layout_activate_by_surf(output, output->previous_active); + } + /* invalidate agl-shell surfaces so we can re-use them when * binding again */ if (surface->role == IVI_SURFACE_ROLE_PANEL) { @@ -556,6 +567,7 @@ ivi_shell_destroy(struct wl_listener *listener, void *data) static void transform_handler(struct wl_listener *listener, void *data) { +#ifdef BUILD_XWAYLAND struct weston_surface *surface = data; struct ivi_surface *ivisurf = get_ivi_shell_surface(surface); const struct weston_xwayland_surface_api *api; @@ -580,11 +592,13 @@ transform_handler(struct wl_listener *listener, void *data) y = ivisurf->view->geometry.y; api->send_position(surface, x, y); +#endif } bool is_shell_surface_xwayland(struct ivi_surface *surf) { +#ifdef BUILD_XWAYLAND const struct weston_xwayland_surface_api *api; struct ivi_compositor *ivi = surf->ivi; struct weston_surface *surface; @@ -596,6 +610,9 @@ is_shell_surface_xwayland(struct ivi_surface *surf) surface = weston_desktop_surface_get_surface(surf->dsurface); return api->is_xwayland_surface(surface); +#else + return false; +#endif } int