summaryrefslogtreecommitdiffstats
path: root/sample/simple-egl
diff options
context:
space:
mode:
Diffstat (limited to 'sample/simple-egl')
-rw-r--r--sample/simple-egl/src/simple-egl.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/sample/simple-egl/src/simple-egl.cpp b/sample/simple-egl/src/simple-egl.cpp
index 4271a66..aa6ea19 100644
--- a/sample/simple-egl/src/simple-egl.cpp
+++ b/sample/simple-egl/src/simple-egl.cpp
@@ -569,9 +569,17 @@ init_hs(LibHomeScreen* hs){
return -1;
}
- hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [](json_object *object){
- HMI_DEBUG("simple-egl","try to activesurface %s ", app_name.c_str());
- wm->activateWindow(main_role);
+ hs->set_event_handler(LibHomeScreen::Event_ShowWindow, [hs](json_object *object){
+ HMI_DEBUG("simple-egl","try to activeWindow %s ", app_name.c_str());
+
+ struct json_object *param_obj = json_object_object_get(object, hs->_keyParameter);
+ const char *area = json_object_get_string(
+ json_object_object_get(param_obj, hs->_keyArea));
+ // Application should call LibWindowmanager::activateWindow() in showWindow handler
+ if(area == nullptr)
+ wm->activateWindow(main_role, hs->_areaNormal);
+ else
+ wm->activateWindow(main_role, area);
});
return 0;