From: Sung-jae Park Date: Fri, 31 May 2013 05:48:28 +0000 (+0900) Subject: Add exceptional case handling code. X-Git-Tag: accepted/tizen/mobile/20150530.065423^2~18^2~13^2~113 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f76f2c66ddb11c29a1a11f72aaff194b880f77bc;p=apps%2Fnative%2Fwidget%2Fwidget.git Add exceptional case handling code. [model] Redwood [binary_type] AP [customer] Docomo/Orange/Open [issue#] N/A [problem] if a developer doesn't set the parent elm object, client doesn't know what happens. [cause] N/A [solution] returns error code for handling this case correctly by client. [team] HomeTF [request] [horizontal_expansion] Change-Id: Ia75a9b482e26f403fa8b549e7fdc5370064c3c05 --- diff --git a/src/virtual_window.c b/src/virtual_window.c index d2ed2e0..2939295 100644 --- a/src/virtual_window.c +++ b/src/virtual_window.c @@ -5,6 +5,7 @@ #include #include +#include #include "livebox.h" @@ -82,8 +83,10 @@ static int event_handler_cb(struct livebox_buffer *handler, enum buffer_event ev evas_event_feed_mouse_out(e, timestamp + 0.01f, NULL); /* + 0.1f just for fake event */ break; case BUFFER_EVENT_HIGHLIGHT: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_HIGHLIGHT; action_info.x = ix; action_info.y = iy; @@ -91,45 +94,57 @@ static int event_handler_cb(struct livebox_buffer *handler, enum buffer_event ev ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_HIGHLIGHT_NEXT: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_HIGHLIGHT_NEXT; action_info.highlight_cycle = EINA_FALSE; ret = elm_access_action(parent_elm, action_type, &action_info); ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_LAST : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_HIGHLIGHT_PREV: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_HIGHLIGHT_PREV; action_info.highlight_cycle = EINA_FALSE; ret = elm_access_action(parent_elm, action_type, &action_info); ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_FIRST : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_ACTIVATE: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_ACTIVATE; ret = elm_access_action(parent_elm, action_type, &action_info); ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_ACTION_UP: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_UP; ret = elm_access_action(parent_elm, action_type, &action_info); ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_ACTION_DOWN: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_DOWN; ret = elm_access_action(parent_elm, action_type, &action_info); ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_SCROLL_UP: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_SCROLL; action_info.x = ix; action_info.y = iy; @@ -138,8 +153,10 @@ static int event_handler_cb(struct livebox_buffer *handler, enum buffer_event ev ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_SCROLL_MOVE: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_info.x = ix; action_info.y = iy; action_info.mouse_type = 1; @@ -147,15 +164,19 @@ static int event_handler_cb(struct livebox_buffer *handler, enum buffer_event ev ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_SCROLL_DOWN: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_info.mouse_type = 2; ret = elm_access_action(parent_elm, action_type, &action_info); ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE; break; case BUFFER_EVENT_UNHIGHLIGHT: - if (!parent_elm) + if (!parent_elm) { + ret = LB_ACCESS_STATUS_ERROR; break; + } action_type = ELM_ACCESS_ACTION_UNHIGHLIGHT; ret = elm_access_action(parent_elm, action_type, &action_info); ret = (ret == EINA_FALSE) ? LB_ACCESS_STATUS_ERROR : LB_ACCESS_STATUS_DONE;