edje_object_signal_emit(sd->notify, "elm,state,show,animation", "elm");
}
//
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ if (sd->hide_ongoing)
+ edje_object_signal_emit(sd->notify, "elm,action,hide,finished", "elm");
+ //
return int_ret;
}
if ((hide_signal) && (!strcmp(hide_signal, "on")))
{
sd->in_timeout = EINA_TRUE;
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ sd->hide_ongoing = EINA_TRUE;
+ //
edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
}
else //for backport supporting: edc without emitting hide finished signal
{
sd->had_hidden = EINA_FALSE;
sd->in_timeout = EINA_FALSE;
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ if (sd->hide_ongoing)
+ {
+ sd->hide_ongoing = EINA_FALSE;
+ eo_do_super(obj, MY_CLASS, evas_obj_smart_hide());
+ evas_object_hide(sd->notify);
+ if (sd->allow_events) evas_object_hide(sd->block_events);
+ }
+ //
eo_do_super(obj, MY_CLASS, evas_obj_smart_show());
evas_object_show(sd->notify);
if ((hide_signal) && (!strcmp(hide_signal, "on")))
{
if (!sd->in_timeout)
- edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
+ {
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ sd->hide_ongoing = EINA_TRUE;
+ //
+ edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
+ }
}
else //for backport supporting: edc without emitting hide finished signal
{
const char *source EINA_UNUSED)
{
ELM_NOTIFY_DATA_GET(data, sd);
+
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ if (!sd->hide_ongoing) return;
+ //
+
sd->had_hidden = EINA_TRUE;
evas_object_hide(sd->notify);
if (!sd->allow_events) evas_object_hide(sd->block_events);
//TIZEN_ONLY(20161018): fix theme apply problem by font/language change
sd->show_finished = EINA_FALSE;
//
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ sd->hide_ongoing = EINA_FALSE;
+ //
}
EOLIAN static void
//TIZEN_ONLY(20161018): fix theme apply problem by font/language change
priv->show_finished = EINA_FALSE;
//
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ priv->hide_ongoing = EINA_FALSE;
+ //
priv->notify = edje_object_add(evas_object_evas_get(obj));
evas_object_smart_member_add(priv->notify, obj);
EOLIAN static void
_elm_notify_dismiss(Eo *obj EINA_UNUSED, Elm_Notify_Data *sd)
{
+ //TIZEN_ONLY(20170107): finish the hiding forcibly if get interrupt
+ sd->hide_ongoing = EINA_TRUE;
+ //
elm_layout_signal_emit(sd->block_events, "elm,state,hide", "elm");
edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
}