X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Flayout.c;h=c078ac930860156ca0e392cdccd0b648eb79ad0c;hb=51be2ca7b38cacb368a9b49423dae7e3c84a4b98;hp=a11aadc3262ab7ff4cb53f008995688247c9d16d;hpb=7854caaca193dbc68c7384f21233a1637ab0382e;p=src%2Fagl-compositor.git diff --git a/src/layout.c b/src/layout.c index a11aadc..c078ac9 100644 --- a/src/layout.c +++ b/src/layout.c @@ -517,22 +517,22 @@ ivi_layout_popup_committed(struct ivi_surface *surface) struct weston_output *woutput = output->output; struct weston_view *view = surface->view; - struct weston_geometry geom; if (surface->view->is_mapped) return; - geom = weston_desktop_surface_get_geometry(dsurface); - weston_log("(popup) geom x %d, y %d, width %d, height %d\n", geom.x, geom.y, - geom.width, geom.height); - assert(surface->role == IVI_SURFACE_ROLE_POPUP); weston_view_set_output(view, woutput); - if (surface->popup.x || surface->popup.y) - weston_view_set_position(view, surface->popup.x, surface->popup.y); - else - weston_view_set_position(view, geom.x, geom.y); + weston_view_set_position(view, surface->popup.x, surface->popup.y); + + /* only clip the pop-up dialog window if we have a valid + * width and height being passed on. Users might not want to have one + * set-up so only enfore it is really passed on. */ + if (surface->popup.bb.width > 0 && surface->popup.bb.height > 0) + 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_update_transform(view);