diff options
Diffstat (limited to 'sample/simple-egl')
-rw-r--r-- | sample/simple-egl/src/simple-egl.cpp | 14 |
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; |