summaryrefslogtreecommitdiff
path: root/src/modules/xkbswitch/e_mod_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/xkbswitch/e_mod_config.c')
-rw-r--r--src/modules/xkbswitch/e_mod_config.c33
1 files changed, 24 insertions, 9 deletions
diff --git a/src/modules/xkbswitch/e_mod_config.c b/src/modules/xkbswitch/e_mod_config.c
index 534cb2f122..e405165121 100644
--- a/src/modules/xkbswitch/e_mod_config.c
+++ b/src/modules/xkbswitch/e_mod_config.c
@@ -232,9 +232,7 @@ _create_data(E_Config_Dialog *cfd)
static void
_list_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
- Evas_Object **o;
-
- o = data;
+ Evas_Object **o = data;
*o = NULL;
}
@@ -246,12 +244,29 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
_xkb.cfd = NULL;
- if (cfdata->compose_list)
- evas_object_event_callback_del(cfdata->compose_list, EVAS_CALLBACK_DEL, _list_del);
- if (cfdata->lv3_list)
- evas_object_event_callback_del(cfdata->lv3_list, EVAS_CALLBACK_DEL, _list_del);
- if (cfdata->switch_list)
- evas_object_event_callback_del(cfdata->switch_list, EVAS_CALLBACK_DEL, _list_del);
+#define FRAME_DEL(list) \
+ if (list) { \
+ evas_object_del(list); \
+ list = NULL; \
+ }
+ FRAME_DEL(cfdata->compose_list);
+ FRAME_DEL(cfdata->lv3_list);
+ FRAME_DEL(cfdata->switch_list);
+ FRAME_DEL(cfdata->led_list);
+ FRAME_DEL(cfdata->ctrl_list);
+ FRAME_DEL(cfdata->keypad_list);
+ FRAME_DEL(cfdata->delkeypad_list);
+ FRAME_DEL(cfdata->capslock_list);
+ FRAME_DEL(cfdata->altwin_list);
+ FRAME_DEL(cfdata->currency_list);
+ FRAME_DEL(cfdata->lv5_list);
+ FRAME_DEL(cfdata->spacebar_list);
+ FRAME_DEL(cfdata->japan_list);
+ FRAME_DEL(cfdata->korean_list);
+ FRAME_DEL(cfdata->esperanto_list);
+ FRAME_DEL(cfdata->solaris_list);
+ FRAME_DEL(cfdata->terminate_list);
+ FRAME_DEL(cfdata->misc_list);
EINA_LIST_FREE(cfdata->cfg_layouts, cl)
{