#endif
#define LOG_TAG "CAPI_WIDGET_APPLICATION"
+#define ICONIFY_TIMEOUT 500
struct instance_data {
Evas_Object *win;
+ guint iconify_timer;
+ bool is_iconified;
};
struct app_cb_info {
data = (struct instance_data *)widget_base_context_get_user_data(instance_h);
if (data != NULL) {
widget_base_context_set_user_data(instance_h, NULL);
+ if (data->iconify_timer > 0)
+ g_source_remove(data->iconify_timer);
free(data);
}
return ret;
}
+static gboolean __iconify_timeout_cb(gpointer user_data)
+{
+ struct instance_data *data = user_data;
+ Ecore_Wl_Window *win = elm_win_wl_window_get(data->win);
+
+ if (win) {
+ ecore_wl_window_iconified_set(win, EINA_TRUE);
+ data->is_iconified = true;
+ _D("set iconify true");
+ }
+
+ data->iconify_timer = 0;
+
+ return G_SOURCE_REMOVE;
+}
+
static int __class_pause(widget_base_instance_h instance_h, void *class_data)
{
int ret = 0;
struct app_class_cb_info *callback_data =
(struct app_class_cb_info *)class_data;
+ struct instance_data *data = (struct instance_data *)
+ widget_base_context_get_user_data(instance_h);
+
+ if (data->iconify_timer > 0)
+ g_source_remove(data->iconify_timer);
+
+ data->iconify_timer = g_timeout_add(ICONIFY_TIMEOUT,
+ __iconify_timeout_cb, data);
widget_base_class_on_pause(instance_h);
if (callback_data && callback_data->callback.pause) {
int ret = 0;
struct app_class_cb_info *callback_data =
(struct app_class_cb_info *)class_data;
+ Ecore_Wl_Window *win;
+ struct instance_data *data = (struct instance_data *)
+ widget_base_context_get_user_data(instance_h);
+
+ if (data->iconify_timer > 0) {
+ g_source_remove(data->iconify_timer);
+ data->iconify_timer = 0;
+ }
+
+ if (data->is_iconified) {
+ win = elm_win_wl_window_get(data->win);
+ if (win) {
+ ecore_wl_window_iconified_set(win, EINA_FALSE);
+ data->is_iconified = false;
+ _D("set iconify false");
+ }
+ }
widget_base_class_on_resume(instance_h);
if (callback_data && callback_data->callback.resume) {