From: Yuta Doi Date: Mon, 21 May 2018 05:10:05 +0000 (+0900) Subject: Waiting for the surface of new app is created before setting the size X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=5b404b92f28630649d1a4063339a3d2663072a55;hp=d05e79b0581daec84f1d164bef2aa0d6107919f6;p=apps%2Fagl-service-windowmanager.git Waiting for the surface of new app is created before setting the size Change-Id: I7e60330739388b5b5dc339076f432e6ca77f12b4 Signed-off-by: Yuta Doi --- diff --git a/src/app.cpp b/src/app.cpp index ac789ad..3ddd5e0 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -1073,6 +1073,12 @@ void App::setSurfaceSize(const char* role, const char* area) { // Set destination to the display rectangle int surface_id = this->role2surfaceid_[role]; + + if (!this->controller->surface_exists(surface_id)) { + // Block until all pending request are processed by wayland display server + // because waiting for the surface of new app is created + this->display->roundtrip(); + } auto &s = this->controller->surfaces[surface_id]; s->set_destination_rectangle(size.x, size.y, size.w, size.h); this->layout_commit();