Ecore_Timer *mftimer; /* Ecore Timer for memory flushing */
-#ifdef _APPFW_FEATURE_BACKGROUND_MANAGEMENT
struct appcore *app_core;
+#ifdef _APPFW_FEATURE_BACKGROUND_MANAGEMENT
void (*prepare_to_suspend) (void *data);
void (*exit_from_suspend) (void *data);
#endif
[AE_RESET] = "RESET",
[AE_LOWMEM_POST] = "LOWMEM_POST",
[AE_MEM_FLUSH] = "MEM_FLUSH",
+ [AE_UPDATE_REQUESTED] = "UPDATE_REQUESTED",
};
static const char *_as_name[] = {
}
#endif
+static void __appcore_efl_update_requested(void *data)
+{
+ struct ui_priv *ui = (struct ui_priv *)data;
+ struct sys_op *op;
+ int dummy = 0;
+
+ if (ui->app_core) {
+ op = &ui->app_core->sops[SE_UPDATE_REQUESTED];
+ if (op && op->func)
+ op->func((void *)&dummy, op->data);
+ }
+ _DBG("[__UPDATE_REQUESTED__]");
+}
+
#if defined(MEMORY_FLUSH_ACTIVATE)
static Eina_Bool __appcore_memory_flush_cb(void *data)
{
switch (event) {
case AE_RESET:
_DBG("[APP %d] RESET", _pid);
+ if (ui->pending_data)
+ bundle_free(ui->pending_data);
ui->pending_data = bundle_dup(b);
LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:reset:start]", ui->name);
_DBG("[APP %d] is another state", _pid);
}
break;
+ case AE_UPDATE_REQUESTED:
+ __appcore_efl_update_requested(ui);
+ break;
default:
/* do nothing */
break;
return FALSE;
}
- g_winnode_list = g_slist_remove_link(g_winnode_list, f);
-
t = (struct win_node *)f->data;
t->win = win;
t->bfobscured = bfobscured;
- g_winnode_list = g_slist_concat(g_winnode_list, f);
-
return TRUE;
}
#elif defined(WAYLAND)
return FALSE;
}
- g_winnode_list = g_slist_remove_link(g_winnode_list, f);
-
t = (struct win_node *)f->data;
t->win = win;
if (surf != 0)
t->surf = surf;
t->bfobscured = bfobscured;
- g_winnode_list = g_slist_concat(g_winnode_list, f);
-
return TRUE;
}
#endif
__appcore_timer_del(ui);
- /* Check the launchpad-loader case */
- while (elm_shutdown() > 0);
+ elm_shutdown();
+
+ /* Check loader case */
+ if (getenv("AUL_LOADER_INIT")) {
+ unsetenv("AUL_LOADER_INIT");
+ elm_shutdown();
+ }
}
static int __set_data(struct ui_priv *ui, const char *name,
static int __set_i18n(const char *domain, const char *dir)
{
char *r;
+ char *lan;
if (domain == NULL) {
errno = EINVAL;
r = setlocale(LC_ALL, "");
/* if locale is not set properly, try again to set as language base */
if (r == NULL) {
- r = setlocale(LC_ALL, vconf_get_str(VCONFKEY_LANGSET));
- _DBG("*****appcore setlocale=%s\n", r);
+ lan = vconf_get_str(VCONFKEY_LANGSET);
+ if (lan != NULL) {
+ r = setlocale(LC_ALL, lan);
+ _DBG("*****appcore setlocale=%s\n", r);
+ free(lan);
+ }
}
if (r == NULL)
_ERR("appcore: setlocale() error");
APPCORE_EVENT_LANG_CHANGE, /* SE_LANGCGH */
APPCORE_EVENT_REGION_CHANGE,
APPCORE_EVENT_SUSPENDED_STATE_CHANGE,
+ APPCORE_EVENT_UPDATE_REQUESTED,
};
static int appcore_event_initialized[SE_MAX] = {0,};
return 0;
}
+static int __app_update_requested(void *data)
+{
+ struct appcore *ac = data;
+
+ _retv_if(ac == NULL || ac->ops == NULL, -1);
+ _retv_if(ac->ops->cb_app == NULL, 0);
+ ac->ops->cb_app(AE_UPDATE_REQUESTED, ac->ops->data, NULL);
+
+ return 0;
+}
+
static int __sys_do_default(struct appcore *ac, enum sys_event event)
{
int r;
}
break;
#endif
+ case AUL_UPDATE_REQUESTED:
+ _DBG("[APP %d] AUL event: AUL_UPDATE_REQUESTED", _pid);
+ __app_update_requested(data);
+ break;
default:
_DBG("[APP %d] AUL event: %d", _pid, type);
/* do nothing */