ensure that confirm dialogs call either the yes or no function when they are closed even if a button is not pressed
SVN revision: 76102
This commit is contained in:
parent
2424eef275
commit
df9fd68281
|
@ -63,6 +63,14 @@ e_confirm_dialog_show(const char *title, const char *icon, const char *text,
|
||||||
static void
|
static void
|
||||||
_e_confirm_dialog_free(E_Confirm_Dialog *cd)
|
_e_confirm_dialog_free(E_Confirm_Dialog *cd)
|
||||||
{
|
{
|
||||||
|
if (!cd->no_run)
|
||||||
|
{
|
||||||
|
e_object_ref(E_OBJECT(cd));
|
||||||
|
cd->no_run = EINA_TRUE;
|
||||||
|
if (cd->no.func) cd->no.func(cd->no.data);
|
||||||
|
e_object_unref(E_OBJECT(cd));
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (cd->del.func) cd->del.func(cd->del.data);
|
if (cd->del.func) cd->del.func(cd->del.data);
|
||||||
e_object_del(E_OBJECT(cd->dia));
|
e_object_del(E_OBJECT(cd->dia));
|
||||||
free(cd);
|
free(cd);
|
||||||
|
@ -75,6 +83,7 @@ _e_confirm_dialog_yes(void *data, E_Dialog *dia __UNUSED__)
|
||||||
|
|
||||||
cd = data;
|
cd = data;
|
||||||
e_object_ref(data);
|
e_object_ref(data);
|
||||||
|
cd->no_run = EINA_TRUE;
|
||||||
if (cd->yes.func) cd->yes.func(cd->yes.data);
|
if (cd->yes.func) cd->yes.func(cd->yes.data);
|
||||||
e_object_del(data);
|
e_object_del(data);
|
||||||
e_object_unref(data);
|
e_object_unref(data);
|
||||||
|
@ -87,6 +96,7 @@ _e_confirm_dialog_no(void *data, E_Dialog *dia __UNUSED__)
|
||||||
|
|
||||||
cd = data;
|
cd = data;
|
||||||
e_object_ref(data);
|
e_object_ref(data);
|
||||||
|
cd->no_run = EINA_TRUE;
|
||||||
if (cd->no.func) cd->no.func(cd->no.data);
|
if (cd->no.func) cd->no.func(cd->no.data);
|
||||||
e_object_del(data);
|
e_object_del(data);
|
||||||
e_object_unref(data);
|
e_object_unref(data);
|
||||||
|
|
|
@ -29,6 +29,7 @@ struct _E_Confirm_Dialog
|
||||||
void *data;
|
void *data;
|
||||||
void (*func)(void *data);
|
void (*func)(void *data);
|
||||||
} del;
|
} del;
|
||||||
|
Eina_Bool no_run : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue