summaryrefslogtreecommitdiffstats
path: root/src/window_manager.cpp
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-02 15:34:24 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-02 15:38:25 +0900
commit6d11d35f86649511e6a5b4b8ab6b6ae13cb4d556 (patch)
tree79b1493010bbbc72df940dbfd46dd456bc5f10b6 /src/window_manager.cpp
parent3d1703f9a5c9d6a356b561ea7528c70a1dc4fe2d (diff)
Fix source rectangle changes every state change
Window Manager changes source rectangle size every state change. This patch changes it to set source rectangle first when the surface is created. Related commit: https://gerrit.automotivelinux.org/gerrit/#/c/15595/ Bug-AGL: SPEC-1584 Change-Id: Ia7429956053cfa18e6e82060f84f3b6fe755c0b1 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
Diffstat (limited to 'src/window_manager.cpp')
-rw-r--r--src/window_manager.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/window_manager.cpp b/src/window_manager.cpp
index 98ebcf1..c57ab09 100644
--- a/src/window_manager.cpp
+++ b/src/window_manager.cpp
@@ -576,6 +576,8 @@ void WindowManager::send_event(char const *evname, char const *label, char const
*/
void WindowManager::surface_created(uint32_t surface_id)
{
+ this->controller->get_surface_properties(surface_id, IVI_WM_PARAM_SIZE);
+
auto layer_id = this->layers.get_layer_id(surface_id);
if (!layer_id)
{
@@ -738,8 +740,6 @@ void WindowManager::surface_set_layout(int surface_id, const std::string& area)
layer_id);
// set destination to the display rectangle
- s->set_source_rectangle(0, 0, w, h);
- this->layout_commit();
s->set_destination_rectangle(x, y, w, h);
// update area information
@@ -1288,6 +1288,7 @@ WMError WindowManager::doEndDraw(unsigned req_num)
HMI_SEQ_DEBUG(req_num, "visible %s", act.role.c_str());
//this->lm_enddraw(act.role.c_str());
}
+ this->layout_commit();
// Change current state
this->changeCurrentState(req_num);
@@ -1767,12 +1768,12 @@ const char* WindowManager::kDefaultOldRoleDb = "{ \
*/
void controller_hooks::surface_created(uint32_t surface_id)
{
- this->app->surface_created(surface_id);
+ this->wmgr->surface_created(surface_id);
}
void controller_hooks::surface_removed(uint32_t surface_id)
{
- this->app->surface_removed(surface_id);
+ this->wmgr->surface_removed(surface_id);
}
void controller_hooks::surface_visibility(uint32_t /*surface_id*/,