From 20b3de111d40050ef752b43c1f77acb2ff3d16c8 Mon Sep 17 00:00:00 2001 From: "hhh.kwon" Date: Sat, 26 Jan 2013 15:08:06 +0900 Subject: [PATCH] Fix Navi_SE issue : When LCD is off, pressing Home key is to open taskmanager. Change-Id: Iaaf10bfb9b16dbe048f81ae4ebd885a2e99e9ffa --- src/_logic.c | 2 ++ src/taskmanager.c | 32 ++++++++++++++++++++++++++++++-- src/taskmanager.h | 1 + 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/_logic.c b/src/_logic.c index 997afb7..41ec8b8 100755 --- a/src/_logic.c +++ b/src/_logic.c @@ -336,6 +336,8 @@ Eina_Bool _create_idler_cb(void *data) struct appdata *ad = (struct appdata *)data; retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument\n"); + _check_show_state(); + evas_object_show(ad->win); _key_grab(ad); diff --git a/src/taskmanager.c b/src/taskmanager.c index 2dfe23f..cc32e30 100755 --- a/src/taskmanager.c +++ b/src/taskmanager.c @@ -45,6 +45,12 @@ enum { IDLELOCK_MAX, }; +enum { + LCD_OFF = 0x0, + LCD_ON, + LCD_MAX, +}; + static struct text_part main_txt[] = { }; @@ -81,13 +87,24 @@ int _get_vconf_idlelock(void) int lock = IDLELOCK_OFF; ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock); - retvm_if(ret < 0, -1, "Failed to get vconf %s\n", - VCONFKEY_IDLE_LOCK_STATE); + retvm_if(ret < 0, -1, "Failed to get vconf\n"); _D("idlelock vconf:%d\n", lock); return lock == VCONFKEY_IDLE_LOCK ? IDLELOCK_ON : IDLELOCK_OFF; } +int _get_vconf_lcdstate(void) +{ + int ret = -1; + int lcd = 0; + + ret = vconf_get_int(VCONFKEY_PM_STATE, &lcd); + retvm_if(ret < 0, -1, "Failed to get vconf\n"); + _D("lcd vconf:%d\n", lcd); + + return lcd == VCONFKEY_PM_STATE_LCDOFF ? LCD_OFF : LCD_ON; +} + Eina_Bool _exit_cb(void *data) { int lock = IDLELOCK_ON; @@ -169,6 +186,17 @@ int _set_notification_level(Evas_Object *win, Utilx_Notification_Level level) return 0; } +void _check_show_state(void) +{ + int lcd = LCD_OFF, idlelock = IDLELOCK_OFF; + lcd = _get_vconf_lcdstate(); + idlelock = _get_vconf_idlelock(); + if(lcd == LCD_OFF || idlelock == IDLELOCK_ON) + { + elm_exit(); + } +} + int app_create(void *data) { Evas_Object *win; diff --git a/src/taskmanager.h b/src/taskmanager.h index 1ca2cbd..d85a2ad 100755 --- a/src/taskmanager.h +++ b/src/taskmanager.h @@ -127,6 +127,7 @@ int _unset_notification_level(Evas_Object *win); int _set_notification_level(Evas_Object *win, Utilx_Notification_Level level); void _key_grab(struct appdata *ad); Eina_Bool _exit_cb(void *data); +void _check_show_state(void); #endif /* __TASKMANAGER_H___ */ -- 2.7.4