ad->is_full = 0;
ad->pre_charge_state = 0;
ad->is_cooldown = 0;
+ ad->back_key_handler = NULL;
+ ad->down_key_handler = NULL;
ad->is_tutorial = 0;
ad->moment_bar_rotary_index = 0;
ad->is_getting_back = 0;
/* Register scs's vconfkey events */
windicator_scs_vconfkey_register(ad);
-
return true;
}
/* Unregister scs's vconfkey events */
windicator_scs_vconfkey_unregister();
+ windicator_util_back_key_ungrab(ad);
}
/**
#include "windicator_connection.h"
#define KEY_BACK "XF86Back"
+#define KEY_DOWN "XF86PowerOff"
Evas_Object *windicator_moment_bar_first_page_layout_create(void *data)
{
Evas_Event_Key_Up *ev = event;
retv_if(ev == NULL, EINA_FALSE);
+ _D("Key(%s) pressed", ev->keyname);
+
if (!strcmp(ev->keyname, KEY_BACK)) {
if (ad->is_getting_back == 0) {
_D("Moment bar status -> idle. (Hide Moment bar)");
_D("Back key animation is operating, so skip back key event");
}
}
+ else if(!strcmp(ev->keyname, KEY_DOWN)) {
+ _D("Moment bar status -> Exit. (Exit Moment bar)");
+ elm_exit();
+ }
return EINA_FALSE;
}
}
}
+ if (ad->down_key_handler == NULL) {
+ ad->down_key_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_release_event_cb, ad);
+ if (ad->down_key_handler == NULL) {
+ _E("Failed to add down key handler");
+ return WINDICATOR_ERROR_FAIL;
+ }
+ }
+
return WINDICATOR_ERROR_OK;
}
+void windicator_util_back_key_ungrab(void *data)
+{
+ _D("");
+ struct appdata *ad = (struct appdata *)data;
+ ret_if(ad == NULL);
+
+ if(ad->back_key_handler) {
+ ecore_event_handler_del(ad->back_key_handler);
+ ad->back_key_handler = NULL;
+ }
+
+ if(ad->down_key_handler) {
+ ecore_event_handler_del(ad->down_key_handler);
+ ad->down_key_handler = NULL;
+ }
+}
windicator_error_e windicator_moment_bar_show(void *data)
{
struct appdata *ad = (struct appdata *)data;