}
#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);
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);
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;
}
(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
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;
Evas_Object *old_indi = NULL;
ELM_CONFORMANT_DATA_GET(data, sd);
-
rot = elm_win_rotation_get(win);
if (rot == sd->rot) return EINA_TRUE;
void *event_info EINA_UNUSED)
{
Evas_Object *conformant = data;
- _indicator_post_appearance_changed(conformant);
+ _indicator_show_effect(conformant, 3);
}
// END