conform: Postpone indicator hiding once quickpanel is visible 65/105865/2
authorWonki Kim <wonki_.kim@samsung.com>
Tue, 20 Dec 2016 01:18:16 +0000 (10:18 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Tue, 20 Dec 2016 09:45:52 +0000 (01:45 -0800)
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 <wonki_.kim@samsung.com>
src/lib/elm_conform.c
src/lib/elm_widget_conform.h

index 0fffbd086ed9bb226e673441e9052f00c3f0df76..9d3542237edd166249cfd80d56b4f6d4278abd54 100644 (file)
@@ -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))
index 9503cc030760fb21d1d229611a606d572e40ef08..247804d5aafa2b57ca2d55d4b322947697f61ec9 100644 (file)
@@ -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;