From 1688ab04195a0e369e8a8bfba2a1c8c0b0e0bd45 Mon Sep 17 00:00:00 2001 From: Wonki Kim Date: Tue, 20 Dec 2016 10:18:16 +0900 Subject: [PATCH] conform: Postpone indicator hiding once quickpanel is visible Postpone indicator hiding when quickpanel is showing to meet ux guideline. modify indicator to work with theme. @tizen_feature Change-Id: I00840736632742702640a7da0f9289e192678cc4 Signed-off-by: Wonki Kim --- src/lib/elm_conform.c | 27 ++++++++++++++++++++++++--- src/lib/elm_widget_conform.h | 4 +++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index 0fffbd0..9d35422 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -112,12 +112,27 @@ _quickpanel_visibility_changed_cb(int type, void *event_info, void *user_data) indmode = elm_win_indicator_mode_get(sd->win); ind_o_mode = elm_win_indicator_opacity_get(sd->win); - // This callback works only when transparent indicator is showing - if (!((indmode == ELM_WIN_INDICATOR_SHOW) && (ind_o_mode == ELM_WIN_INDICATOR_TRANSPARENT))) return; - if(qp_mod && qp_mod->quickpanel_event_visible_get) qp_mod->quickpanel_event_visible_get(event_info, &visible); + sd->quickpanel_state = visible; + + if (visible == CONFORM_QUICKPANEL_STATE_VISIBLE_SHOWN) + { + elm_object_signal_emit(conform, "elm,state,quickpanel,visible", "elm"); + } + else if( visible == CONFORM_QUICKPANEL_STATE_VISIBLE_HIDDEN) + { + elm_object_signal_emit(conform, "elm,state,quickpanel,hidden", "elm"); + } + + // Actual manipulation works only when transparent indicator is showing + if (!((indmode == ELM_WIN_INDICATOR_SHOW) && (ind_o_mode == ELM_WIN_INDICATOR_TRANSPARENT))) + { + if ((sd->rot == 0) || (sd->rot == 180)) + return; + } + if (visible == CONFORM_QUICKPANEL_STATE_VISIBLE_SHOWN) { _indicator_hide_effect_del(conform); @@ -716,6 +731,12 @@ _indicator_post_appearance_changed(Evas_Object *conformant) { ELM_CONFORMANT_DATA_GET(conformant, sd); + // Ignore when quickpanel is visible + if(sd->quickpanel_state == CONFORM_QUICKPANEL_STATE_VISIBLE_SHOWN) + { + return; + } + _indicator_hide_effect_del(conformant); if((sd->indmode != ELM_WIN_INDICATOR_SHOW)) diff --git a/src/lib/elm_widget_conform.h b/src/lib/elm_widget_conform.h index 9503cc0..247804d 100644 --- a/src/lib/elm_widget_conform.h +++ b/src/lib/elm_widget_conform.h @@ -56,6 +56,9 @@ struct _Elm_Conformant_Data Ecore_Timer *indicator_effect_timer; Eina_Bool on_indicator_effect : 1; //END + //TIZEN_ONLY(20161220) : quickpanel visibility// + int quickpanel_state; + //END int rot; }; @@ -72,7 +75,6 @@ enum _Conformant_Part_Type // TIZEN_ONLY(20161208): Support quickpanel callback -// typedef void (*quickpanel_callback_cb)(int type, void *event_info, void *user_data); typedef enum _Conformant_Quickpanel_Event Conformant_Quickpanel_Event; -- 2.7.4