From 4bcf26a0a5f9c5f3c5c93a6389cd8c4953a0c1d9 Mon Sep 17 00:00:00 2001 From: Chidambar Zinnoury Date: Mon, 6 Oct 2008 07:11:18 +0000 Subject: [PATCH] Remove segfault when color picking dialog was closed with border close button. SVN revision: 36472 --- src/bin/e_color_dialog.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/bin/e_color_dialog.c b/src/bin/e_color_dialog.c index 6adfc17f8..d84b08496 100644 --- a/src/bin/e_color_dialog.c +++ b/src/bin/e_color_dialog.c @@ -124,7 +124,12 @@ _e_color_dialog_button2_click(void *data, E_Dialog *edia) static void _e_color_dialog_free(E_Color_Dialog *dia) { - e_object_unref(E_OBJECT(dia->dia)); + if (dia->dia) + { + e_object_del_attach_func_set(E_OBJECT(dia->dia), NULL); + e_object_del(E_OBJECT(dia->dia)); + dia->dia = NULL; + } E_FREE(dia->color); E_FREE(dia); } @@ -134,5 +139,9 @@ _e_color_dialog_dia_del(void *obj) { E_Dialog *dia = obj; E_Color_Dialog *cdia = dia->data; - _e_color_dialog_button2_click(cdia, dia); + if (cdia->cancel_func && cdia->initial) + cdia->cancel_func(cdia, cdia->initial, cdia->cancel_data); + + cdia->dia = NULL; + e_object_del(E_OBJECT(cdia)); }