Bug Fix : set source rectangle again
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Fri, 15 Jun 2018 08:23:39 +0000 (17:23 +0900)
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Fri, 15 Jun 2018 08:23:39 +0000 (17:23 +0900)
Change-Id: I89b84b049e13cdc61b008d98848b46cba8ffd3a4
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
src/app.cpp

index 3bdabfd..fdc89fe 100644 (file)
@@ -1385,7 +1385,18 @@ bool App::api_set_role(char const *appid, char const *drawing_name, unsigned pid
     // this surface is already created
     HMI_DEBUG("wm", "surface_id is %u, layer_id is %u", surface, *lid);
 
-    this->surface_set_layout(surface);
+    const auto &o_layer = this->layers.get_layer(*lid);
+    auto rect = o_layer.value().rect;
+    if(rect.w < 0)
+    {
+        rect.w = this->controller->output_size.w + 1 + rect.w;
+    }
+    if(rect.h < 0)
+    {
+        rect.h = this->controller->output_size.h + 1 + rect.h;
+    }
+    this->controller->surfaces[surface]->set_source_rectangle(rect.x, rect.y, rect.w, rect.h);
+
     this->controller->layers[*lid]->add_surface(surface);
     this->layout_commit();