From ea4f9991618cb75b6af6accd5dc1cabf9e337ec5 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Mon, 14 Mar 2016 15:04:09 +0900 Subject: [PATCH] key_listener: deal with back/menu key strings for backward compatibility. Change-Id: Ia53fe373aab5085429e416b02f14396c79a836e6 --- src/include/efl/mobile/ui_basic_key_listener.h | 6 +++--- src/include/interface/ui_iface_view.h | 2 +- src/lib/efl/mobile/ui_basic_key_listener.cpp | 14 ++++++++------ src/lib/efl/ui_key_listener.cpp | 10 +++++++++- src/lib/efl/ui_viewmgr.cpp | 2 +- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/include/efl/mobile/ui_basic_key_listener.h b/src/include/efl/mobile/ui_basic_key_listener.h index 8291ca2..427a8ea 100644 --- a/src/include/efl/mobile/ui_basic_key_listener.h +++ b/src/include/efl/mobile/ui_basic_key_listener.h @@ -14,8 +14,8 @@ * limitations under the License. * */ -#ifndef MOBILE_KEY_HANDLER_H -#define MOBILE_KEY_HANDLER_H +#ifndef UI_BASIC_KEY_HANDLER_H +#define UI_BASIC_KEY_HANDLER_H #include "../ui_viewmanager_efl.h" @@ -34,4 +34,4 @@ public: } -#endif /* MOBILE_KEY_HANDLER_H */ +#endif /* UI_BASIC_KEY_HANDLER_H */ diff --git a/src/include/interface/ui_iface_view.h b/src/include/interface/ui_iface_view.h index 62f5b92..e063a0e 100644 --- a/src/include/interface/ui_iface_view.h +++ b/src/include/interface/ui_iface_view.h @@ -282,7 +282,7 @@ public: return this->state; } - /** @brief Return a state of removeable content. + /** @brief Return a state of removable content. * * @return true if the view's content is removable, otherwise false. */ diff --git a/src/lib/efl/mobile/ui_basic_key_listener.cpp b/src/lib/efl/mobile/ui_basic_key_listener.cpp index b077dab..c629c9d 100644 --- a/src/lib/efl/mobile/ui_basic_key_listener.cpp +++ b/src/lib/efl/mobile/ui_basic_key_listener.cpp @@ -20,11 +20,7 @@ using namespace efl_viewmgr; using namespace viewmgr; static const char *KEY_MENU = "XF86Menu"; - -enum ui_key_event_type -{ - UI_KEY_EVENT_MENU -}; +static const char *KEY_MENU2 = "XF86Send"; ui_basic_key_listener::ui_basic_key_listener(ui_viewmgr *viewmgr) : ui_key_listener(viewmgr) @@ -33,7 +29,7 @@ ui_basic_key_listener::ui_basic_key_listener(ui_viewmgr *viewmgr) void ui_basic_key_listener::extend_event_proc(ui_view *view, Evas_Event_Key_Down *ev) { - if (strcmp(ev->keyname, KEY_MENU)) return; + if (strcmp(ev->keyname, KEY_MENU) && strcmp(ev->keyname, KEY_MENU2)) return; dynamic_cast(view)->menu(); } @@ -46,5 +42,11 @@ bool ui_basic_key_listener::init() LOGE("Failed to grab MENU KEY(%s)\n", KEY_MENU); return false; } + + if (!evas_object_key_grab(this->key_grabber, KEY_MENU2, 0, 0, EINA_FALSE)) + { + LOGE("Failed to grab MENU KEY(%s)\n", KEY_MENU2); + return false; + } return true; } diff --git a/src/lib/efl/ui_key_listener.cpp b/src/lib/efl/ui_key_listener.cpp index 54aec46..c64350f 100644 --- a/src/lib/efl/ui_key_listener.cpp +++ b/src/lib/efl/ui_key_listener.cpp @@ -20,6 +20,7 @@ using namespace efl_viewmgr; using namespace viewmgr; static const char *KEY_BACK = "XF86Back"; +static const char *KEY_BACK2 = "XF86Stop"; ui_key_listener::ui_key_listener(ui_viewmgr *viewmgr) : viewmgr(viewmgr), key_grabber(NULL) @@ -39,7 +40,7 @@ static void event_proc(ui_key_listener *key_listener, Evas_Event_Key_Down *ev) key_listener->extend_event_proc(view, ev); - if (strcmp(ev->keyname, KEY_BACK)) return; + if (strcmp(ev->keyname, KEY_BACK) && strcmp(ev->keyname, KEY_BACK2)) return; view->back(); } @@ -86,6 +87,13 @@ bool ui_key_listener::init() return false; } + if (!evas_object_key_grab(key_grab_rect, KEY_BACK2, 0, 0, EINA_FALSE)) + { + LOGE("Failed to grab BACK KEY(%s)\n", KEY_BACK2); + evas_object_del(key_grab_rect); + return false; + } + this->key_grabber = key_grab_rect; return true; diff --git a/src/lib/efl/ui_viewmgr.cpp b/src/lib/efl/ui_viewmgr.cpp index 53a61ff..11ff304 100644 --- a/src/lib/efl/ui_viewmgr.cpp +++ b/src/lib/efl/ui_viewmgr.cpp @@ -187,7 +187,7 @@ ui_viewmgr::ui_viewmgr(const char *pkg, ui_key_listener *key_listener) }, this); - //Conformant: Make this configurable. + //FIXME: Make conformant configurable? if (!this->create_conformant(this->win)) { LOGE("Failed to create a conformant (%s)", pkg); -- 2.7.4