Add timeout handler for manual render set 99/147799/1
authorSemun Lee <semun.lee@samsung.com>
Tue, 5 Sep 2017 13:32:56 +0000 (22:32 +0900)
committerSemun Lee <semun.lee@samsung.com>
Tue, 5 Sep 2017 23:47:05 +0000 (08:47 +0900)
Change-Id: I5ad867301ed87b40db268f87c669e3976689efbd
Signed-off-by: Semun Lee <semun.lee@samsung.com>
watch-control/src/control.c

index e5261d5..f0d3892 100644 (file)
@@ -74,6 +74,7 @@ static int __is_dead_signal_connected;
 static aul_app_com_connection_h __conn_dead_signal;
 static unsigned int __watch_rid;
 static bool __manual_render;
+static guint __manual_render_timer;
 static bool __iconified = false;
 static bool __is_bound = false;
 static int __viewer_visibility = AUL_SCREEN_STATUS_RESUME;
@@ -94,6 +95,8 @@ static aul_app_com_connection_h __conn_launch_signal;
 static int __listen_launch_signal(void);
 static void __ignore_launch_signal(void);
 static void __set_viewer_appid(void);
+static void __manual_render_start(void);
+static void __manual_render_finish(void);
 
 static void __process_pending_status(int status, unsigned int surf)
 {
@@ -152,6 +155,14 @@ static void __win_resized(void *data, Evas *e, Evas_Object *obj, void *event_inf
        __default_height = h;
 }
 
+static gboolean __manual_render_timeout(gpointer user_data)
+{
+       LOGW("manual render timeout expired");
+       __manual_render_finish();
+       __manual_render_timer = 0;
+       return G_SOURCE_REMOVE;
+}
+
 static void __manual_render_start(void)
 {
        Evas_Object *cur_image;
@@ -183,6 +194,8 @@ static void __manual_render_start(void)
                screen_connector_toolkit_evas_send_visibility(cur_image,
                                VISIBILITY_TYPE_UNOBSCURED);
        __manual_render = true;
+
+       __manual_render_timer = g_timeout_add(100, __manual_render_timeout, NULL);
        LOGI("Manual render start");
 }
 
@@ -210,6 +223,10 @@ static void __manual_render_finish(void)
        }
 
        __manual_render = false;
+       if (__manual_render_timer > 0) {
+               g_source_remove(__manual_render_timer);
+               __manual_render_timer = 0;
+       }
 }
 
 static Eina_Bool __iconify_state_changed(void *data, int type, void *event)