Revert "Revert "conform: modify indicator UI when rotating device"" 88/84288/2
authorwonki kim <wonki_.kim@samsung.com>
Thu, 18 Aug 2016 01:38:42 +0000 (18:38 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Fri, 19 Aug 2016 01:56:15 +0000 (18:56 -0700)
This reverts commit d1fea0d594e6fee49bff44a86b5358d32510c8be.

Change-Id: I00aa287a19dfb5ec0bde0328c4ef7bdeefa59389

src/lib/elm_conform.c

index 63b9411..170388c 100644 (file)
@@ -607,7 +607,7 @@ _indicator_visible_type_set(Evas_Object *obj, Eina_Bool visible)
 }
 #endif
 static Eina_Bool
-_indicator_hide_effect(void *data)
+_indicator_hide_effect_done_cb(void *data)
 {
    Evas_Object *conformant = data;
    ELM_CONFORMANT_DATA_GET(conformant, sd);
@@ -615,18 +615,36 @@ _indicator_hide_effect(void *data)
 
    sd->on_indicator_effect = EINA_FALSE;
    sd->indicator_effect_timer = NULL;
+   elm_object_signal_emit(conformant, "indicator,hide,effect", "elm");
 
-   if(((sd->rot == 90) || (sd->rot == 270)) ||
-       (sd->ind_o_mode == ELM_WIN_INDICATOR_TRANSPARENT))
-      {
-        elm_object_signal_emit(conformant, "indicator,hide,effect", "elm");
 #ifdef HAVE_ELEMENTARY_WAYLAND
-        _indicator_visible_type_set(data, EINA_FALSE);
+   _indicator_visible_type_set(conformant, EINA_FALSE);
 #endif
-      }
    return ECORE_CALLBACK_CANCEL;
 }
 static void
+_indicator_hide_effect_del(void *data)
+{
+   Evas_Object *conformant = data;
+   ELM_CONFORMANT_DATA_GET(conformant, sd);
+
+   if (sd->indicator_effect_timer)
+     {
+        ecore_timer_del(sd->indicator_effect_timer);
+        sd->indicator_effect_timer = NULL;
+     }
+}
+static void
+_indicator_hide_effect_set(void *data, double duration)
+{
+   Evas_Object *conformant = data;
+   ELM_CONFORMANT_DATA_GET(conformant, sd);
+
+   _indicator_hide_effect_del(conformant);
+   if (duration)
+     sd->indicator_effect_timer = ecore_timer_add(duration, _indicator_hide_effect_done_cb, conformant);
+}
+static void
 _indicator_show_effect(Evas_Object *conformant, double duration)
 {
    ELM_CONFORMANT_DATA_GET(conformant, sd);
@@ -635,18 +653,30 @@ _indicator_show_effect(Evas_Object *conformant, double duration)
    sd->on_indicator_effect = EINA_TRUE;
    elm_object_signal_emit(conformant, "indicator,show,effect", "elm");
 
-   if (sd->indicator_effect_timer) ecore_timer_del(sd->indicator_effect_timer);
-      sd->indicator_effect_timer = ecore_timer_add(duration, _indicator_hide_effect, conformant);
+#ifdef HAVE_ELEMENTARY_WAYLAND
+   _indicator_visible_type_set(conformant, EINA_TRUE);
+#endif
+   _indicator_hide_effect_set(conformant, duration);
 }
 static void
 _indicator_post_appearance_changed(Evas_Object *conformant)
 {
    ELM_CONFORMANT_DATA_GET(conformant, sd);
 
+   _indicator_hide_effect_del(conformant);
+
    if((sd->indmode != ELM_WIN_INDICATOR_SHOW))
      {
 #ifdef HAVE_ELEMENTARY_WAYLAND
-        _indicator_visible_type_set(conformant, EINA_FALSE);
+   _indicator_visible_type_set(conformant, EINA_FALSE);
+#endif
+        return;
+     }
+
+   if ( sd->rot == 90 || sd->rot == 270 )
+     {
+#ifdef HAVE_ELEMENTARY_WAYLAND
+   _indicator_visible_type_set(conformant, EINA_FALSE);
 #endif
         return;
      }
@@ -655,10 +685,18 @@ _indicator_post_appearance_changed(Evas_Object *conformant)
        (sd->indmode == ELM_WIN_INDICATOR_UNKNOWN))
      return;
 
+   if (sd->ind_o_mode == ELM_WIN_INDICATOR_TRANSPARENT)
+     {
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   _indicator_visible_type_set(conformant, EINA_TRUE);
+        _indicator_visible_type_set(conformant, EINA_FALSE);
 #endif
-   _indicator_show_effect(conformant, 3);
+     }
+   else
+     {
+#ifdef HAVE_ELEMENTARY_WAYLAND
+        _indicator_visible_type_set(conformant, EINA_TRUE);
+#endif
+     }
 }
 // END
 static void
@@ -738,14 +776,14 @@ _on_indicator_mode_changed(void *data,
    indmode = elm_win_indicator_mode_get(win);
    ind_o_mode = elm_win_indicator_opacity_get(win);
 
-   Eina_Bool sc = ((indmode != sd->indmode) | (ind_o_mode != sd->ind_o_mode)) ; // TIZEN_ONLY(20160801):indicator implementation
+   Eina_Bool dirty = ((indmode != sd->indmode) | (ind_o_mode != sd->ind_o_mode)) ; // TIZEN_ONLY(20160801):indicator implementation
 
    if (indmode != sd->indmode)
      _indicator_mode_set(conformant, indmode);
    if (ind_o_mode != sd->ind_o_mode)
      _indicator_opacity_set(conformant, ind_o_mode);
    // TIZEN_ONLY(20160801):indicator implementation
-   if (sc)
+   if (dirty)
      _indicator_post_appearance_changed(conformant);
    // END
    return EINA_TRUE;
@@ -762,7 +800,6 @@ _on_rotation_changed(void *data,
    Evas_Object *old_indi = NULL;
 
    ELM_CONFORMANT_DATA_GET(data, sd);
-
    rot = elm_win_rotation_get(win);
 
    if (rot == sd->rot) return EINA_TRUE;
@@ -804,7 +841,7 @@ _on_indicator_flick_done(void *data,
                          void *event_info EINA_UNUSED)
 {
    Evas_Object *conformant = data;
-   _indicator_post_appearance_changed(conformant);
+   _indicator_show_effect(conformant, 3);
 }
 // END